leetcode 38--计算数量(找规律)

2018-12-14  本文已影响0人  Ariana不会哭

这个题目相对简单,但是理解上需要仔细一点:


图片.png

简单来说题目让我们找规律,没有什么更好的方法,就是从头到n 依次计算,第一层循环是行数循环,为了减少一个统计行数的变量 我直接这样写:--n>0:首先n减一 然后判断是否大于零。
后面就是按行分配循环 然后计算出相同的char有几个:

class Solution {
    //my
    public String countAndSay2(int n) {
        if (n <= 0) 
            return "";
        String ans="1";
        while(--n>0){
            String cur="";
            for(int i=0;i<ans.length();i++){
                Integer cnt=1;
                while(i+1<ans.length()&& ans.charAt(i+1)==ans.charAt(i)){
                    cnt++;
                    i++;
                }
                cur+=cnt.toString()+ans.charAt(i); 
            }
            ans=cur;
        }
        return ans;
    }
}
上一篇下一篇

猜你喜欢

热点阅读