编程语言
首页 > 编程语言> > LeetCode算法题——报数序列

LeetCode算法题——报数序列

作者:互联网

题目

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
1.     1
2.     11
3.     21
4.     1211
5.     111221
1 被读作  "one 1"  ("一个一") , 即 11。
11 被读作 "two 1s" ("两个一"), 即 21。
21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。
给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。
注意:整数顺序将表示为一个字符串

 

代码实现

public class day1{
	
	private static int circle = 1;
	public static void doubi(int x,String string) {
		
		string = string.replace("个","");
		
		if(circle==x-1) {
			System.out.println(string);
		}
		
		int count = 1;
		String string2 = "";
		
		for(int i=0;i<string.length()-1;i++) {
			if(string.charAt(i)!=string.charAt(i+1)) {
				string2 = string2+count+"个"+string.charAt(i)+"个";
				count = 1;
				if(i==string.length()-2) {
					string2 = string2+count+"个"+string.charAt(i+1);
				}
			}else {
				count++;
				if(i==string.length()-2) {
					string2 = string2+count+"个"+string.charAt(i+1);
				}
			}

		}
		circle++;
		doubi(x,string2);
	}
	public static void main(String[] args) {
		
		int x = 1;
		if(x==1) {
			System.out.println(1);
		}else {
			doubi(x,"1个1");
		}
	}
}

 

标签:11,21,int,报数,算法,读作,LeetCode,string
来源: https://blog.csdn.net/qq_44868502/article/details/102750168