• leetcode 报数 java


    规律不多说,可以去LeetCode看评论。

    其实我很早就想到了解法,但是用 JAVA 我比较陌生,一直用代码实现不了解法。

    几个月没做题,脑子比较迟钝,这个题目做了大概 3 小时 。

    思路:

    模拟规律,用循环做。

    1.初始化 str = “1”;

    2.一个循环,循环的层数即是 n 。

    3.用一个 pre 记录 str 的第一个值。用一个 count = 1,代表目前只有一个重复的 pre 。设置一个stringBulider 类,为 ans。

    4.再用一个循环,循环的层数代表的 str 的长度 - 1 (下标从 1 开始, 因为我们设置了 一个 pre,这个 pre 就是 str 的第 0 个元素)。    在这个循环里面去设置一个 c ,c 与pre 相等的时候,count ++ 。 如果不相等,用 ans.append(count).append(pre)。 然后 pre = c, count = 1;

    5.让str = ans.toString 。 继续做循环

    6.第一个循环结束,返回str,即是答案。

    和 JAVA 有关的知识点:

    1. stringBulider 类, append 方法。

    2.String 类,charAt 方法。 toString 方法。

    通过代码:

    class Solution {
        public String countAndSay(int n) {
            String str = "1";
            for(int i = 0; i < n-1; i++)
            {
                int count = 1;
                StringBuilder ans = new StringBuilder();
                char pre = str.charAt(0);
                for(int j = 1; j < str.length(); j++){
                    char c = str.charAt(j);
                    if(c == pre){
                        count++;
                    }else{
                        ans.append(count).append(pre);
                        pre = c;
                        count = 1;
                    }
                }
                ans.append(count).append(pre);
                str = ans.toString();
            }
            return str;
        }
    }
    
  • 相关阅读:
    javascript 多条件分支结构
    初步认识android四大组件之Broadcast
    Apache Tomcat6之阀学习整理
    用java实现一道c笔试题
    Apache Tomcat6 之连接器学习整理(1)
    iphone常用代码块 HA
    iphone开发UIWebView 的使用 HA
    quickmaps HA
    iphone开发uiscrollview 的使用 HA
    iphone api 使用说明详细 HA
  • 原文地址:https://www.cnblogs.com/stul/p/11481665.html
Copyright © 2020-2023  润新知