力扣第二周总结

文章目录

  • 前言
  • 一、Java中三元运算符错误:not a statement
  • 二、第一个只出现一次的字符
    • 1.一般方法是使用HashMap或者LinkedHashMap
    • 2.使用数组字典查找
  • 总结


前言

本周主要是做了一些关于字符串和Hash Map相关的题目,遇到的问题如下:

一、Java中三元运算符错误:not a statement

使用Java三元运算符时,出现错误如下:

Line 14: error: not a statement
           target == nums[i]? count++ :count--;

然而Java与C++不同,java的表达式规定只有以下四种:
赋值表达式,自增,方法调用,对象创建表达式。

所以三元运算符,不能进行以上操作,需要返回具体值或者调用函数返回值,不然并不能构成表达式(not a statement)。
最后进行修改如下:

   count += nums[i] == target ? 1:-1; 

二、第一个只出现一次的字符

1.一般方法是使用HashMap或者LinkedHashMap

缺点:运行的时间仍较长
思考:该题与数组中重复的数字一题很相似,只不过在后者中已规定好数组的长度,此题中,若是使用数组则更快,且思想也是类似的。

2.使用数组字典查找

class Solution {
     
    public char firstUniqChar(String s) {
     
        char c[] = s.toCharArray();
        char count[] = new char[26];
        for(char t : c){
     
            count[t-'a']++;
        }
        for(char t :c)
        {
     
            if(count[t-'a'] == 1)
            return t;
        }
        return ' ';
    }
}

数组长度设为26,第一次遍历,统计各字符的个数,第二次遍历找出第一个只出现一次的字符。

总结

以上主要是这周的总结,主要的收获就是Java中三元运算符的使用方式,与其他语言的不同之处。

你可能感兴趣的:(java,leetcode)