LeetCode 38 Count and Say(字符串规律输出)

题目链接:https://leetcode.com/problems/count-and-say/?tab=Description

1—>11—>21—>1211—>111221—>312211—>….

按照上面的规律进行求解出第n个字符串是什么。

规律:相连的数字有多少个然后添加上这个数字

参考代码:

package leetcode_50;

/***
 *
 * @author pengfei_zheng
 * 按照规律进行求解字符串
 */
public class Solution38 {
    public static String countAndSay(int n) {
        if(n<=0) {
            return "";
        }
        String s="1";
        int times = 1;
        while(times<n){
            s = getSay(s);
            times++;
        }
        return s;
    }
    private static String getSay(String s) {
        int count =0;
        StringBuilder str = new StringBuilder("");
        for(int i = 0; i<s.length(); i++){
            //first to add in order to prevent thinking about the index
            count ++;
            //not reach the end of s and next item is not equal to the pre item
            if ((i< s.length()-1) && (s.charAt(i) != s.charAt(i + 1))) {
                str = str.append(count).append(s.charAt(i));//rebuild the str
                count = 0;//reset count to zero
            }
            else if ((i == s.length()-1)) {//meet the end of s
                str = str.append(count).append(s.charAt(i));
            }
        }
        return str.toString();
    }
    public static void main(String[]args){
        String s = countAndSay(2);
        System.out.println(s);
    }
}
时间: 2024-10-15 18:30:24

LeetCode 38 Count and Say(字符串规律输出)的相关文章

leetCode 38. Count and Say 字符串

38. Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1" 

5.Leetcode 38:Count and Say 笔记

1:题目描述 Given an integer n, generate the nth term of the count-and-say sequence. 找规律,给定一个数n后,写出第n行的字符串 2:题目分析 突然发现自己的Say实在不发达,看了半个多小时才知道咋回事.n就是再说n-1行的内容:"有'x1'个'num1'和'x2'个'num2'--",分析完毕,开始写代码 3:解题思路 1 class Solution(object): 2 def countAndSay(se

leetCode 38.Count and Say (计数和发言) 解题思路和方法

Count and Say The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2, then one 1" o

Java [leetcode 38]Count and Say

题目描述: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2, then one 1" or 1211.

LeetCode 38 Count and Say(C,C++,Java,Python)

Problem: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2, then one 1" or 121

[LeetCode 38] Count and Say

题目链接:count-and-say /** * The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2, then on

[LeetCode] 38. Count and Say 计数和读法

The count-and-say sequence is the sequence of integers with the first five terms as following: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1

19.2.3 [LeetCode 38] Count and Say

The count-and-say sequence is the sequence of integers with the first five terms as following: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1

LeetCode:Count and Say

1.题目名称 Count and Say(按照数字重复出现计数并生成字符串) 2.题目地址 https://leetcode.com/problems/count-and-say/ 3.题目内容 英文:The count-and-say sequence is the sequence of integers beginning as follows 中文:给出正整数n,返回"count-and-say"序列的第n项 说明: count-and-say序列形如:1, 11, 21, 1