LeetCode——String相关笔记

EASY:

344

387. First Unique Character in a String

  public int firstUniqChar(String s) {
          int[] buctet=new int[26];
          int index=0,i=0;
          
          for(i=0;i<s.length();i++)
          {
              index=s.charAt(i)-'a';
              buctet[index]++;
          }
          for(index=0;index<26;i++)
          {
              if(buctet[index]==1)
return index;
          }
          return -1;
      
      }

-------第二个循环处,不是检查每一个bucket,而且找的也不是这个字符,而是这个字符在字符串中的位置。

     for(i=0;i<s.length();i++)
          {
              if(buctet[s.charAt(i)-'a']==1)
                  return i;
          }

所以以后一定看清楚结果要求的到底是什么????!!!!!

541. Reverse String II

/思路,先判断需要几个2*k,解决掉,把剩下不足2*k的部分再分别做判断

说实话不难,但是做了超级长时间因为举例子的时候没有搞清楚清晰的数字变化,以后的草稿纸一定 要清晰明了

需要有空的时候再练习一遍

415. Add Strings-------必须再练习

////******如何将s.charAt(i)转化为数字,即如何将‘5’转化为5!!!直接 s.charAt(i)-‘0’  !!!!

i >= 0 || j >= 0 || carry == 1;--------------用三元运算符  做出加法!!

public class Solution {
    public String addStrings(String num1, String num2) {
        StringBuilder sb = new StringBuilder();
        int carry = 0;
        for(int i = num1.length() - 1, j = num2.length() - 1; i >= 0 || j >= 0 || carry == 1; i--, j--){
            int x = i < 0 ? 0 : num1.charAt(i) - '0';
int y = j < 0 ? 0 : num2.charAt(j) - '0';
            sb.append((x + y + carry) % 10);
            carry = (x + y + carry) / 10;
        }
        return sb.reverse().toString();
    }
}
颜色标记的是第二次4月6日复习出错的点儿
//4.7复习完好做出bravo!

459. Repeated Substring Pattern

//总是想一些莫名其妙的解法,想找到一个有序又不能重复的集合。结果没找到,除非自定义。

【目前为止,好像,只有那个replace那个,需要用到映射,还有不重复的,用到了集合,其余的都是从长度本身入手,下次注意】

设立gap,可以从1开始到length/2结束,也可以反过来

//4.6fail

//4.7fail.

345. Reverse Vowels of a String

思路不错,用两个指针形式从两侧往中间

但是出现了个错误见--字符数组问题,toString和new String(cs)

判断是否为Vowel使用了判断,|| ||了10次,如果多的话,就需要像第一位一样 String vowels="aeiouAEIOU",使用 vowels.contains(chars[i]+"");注意里面是字符串

434. Number of Segments in a String

题目就好几个单词不认识

Count the number of segments in a string, where a segment is defined to be a contiguous sequence【连续序列】 of non-space characters.

Please note that the string does not contain any non-printable characters.

 如果只含有空格就好办了,可是还可能有,.啥的,并不能做判断,遇到一个就加一。

//统计的不是空格数,而是 当前字符不是空格,前一个字符是空格或者当前字符就是第一个字符了。

//同时,英文的, .后面都是有一个空格的,所以直接计算是字符打头比较合适

438. Find All Anagrams in a String解析也没太看懂,明天4.8接着来

205. Isomorphic Strings 解析差不多比上一次好多了,明天4.8写吧

原文地址:https://www.cnblogs.com/Cherrylalala/p/6670793.html