zoukankan      html  css  js  c++  java
  • 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写吧

  • 相关阅读:
    Azure的CentOS上安装LIS (Linux Integration Service)
    使用PowerShell在Azure China创建Data Warehouse
    通过php的MongoDB driver连接Azure的DocumentDB PaaS
    Azure RBAC管理ASM资源
    Azure基于角色的用户接入控制(RBAC)
    通过PowerShell命令给Azure VM添加CustomScriptExtension
    手把手教你创建Azure ARM Template
    MySQL数据表列转行
    MySQL
    MySQL游标使用
  • 原文地址:https://www.cnblogs.com/Cherrylalala/p/6670793.html
Copyright © 2011-2022 走看看