zoukankan      html  css  js  c++  java
  • LeetCode38-报数(水题)

    一开始每太看懂题目

    其实就是一开始是 1

    然后就是对上面报数 1一个1  :11

    再对上面报数:2个1:21

    再对上面报数:一个2,一个1:1211

    报数,就是将上面的数字从左到右,将个数和数字念出来。

    这就好办了,建立一个数组就好了,每次取前面的数字

    对它遍历,计算个数。

    很多坑没有注意到,粗心了

    public static String countAndSay(int n) {
    
            String [] data = new String[n+1];
    
            data[1] = "1";
    
            for(int i=2;i<=n;i++){
    
                //遍历前一个字符串
                String temp = data[i-1];
    
                char last = temp.charAt(0);
                int count = 1;
                String result = "";
    
                for(int j=1,len=temp.length();j<len;j++){
    
                    if(temp.charAt(j)==last)
                        count++;
                    else{
    
                        //直接加会加成数字了
                        result+=count;
                        result+=last;
    
                        //将last设为新数字
                        count=1;
                        last=temp.charAt(j);
    
                    }
    
                }
    
                //这样会有问题,如果一直都是同一个数字,就不会触发!=last了
                //要手动把这个数字加上
                result+=count;
                result+=last;
    
                data[i]=result;
    
            }
    
            return data[n];
    
        }

  • 相关阅读:
    12.Django与ajax
    11.Django的分页器paginator
    10.中间键Middleware
    09.用户认证auth模块
    08.form组件
    07.会话跟踪技术cookie与session
    06.orm模型层
    05.Django模板层
    04.Django视图函数
    03.DjangoURL路由
  • 原文地址:https://www.cnblogs.com/weizhibin1996/p/9356240.html
Copyright © 2011-2022 走看看