关闭

Algorithms—38.Count and Say

113人阅读 评论(0) 收藏 举报
分类:

思路:掌握规则,逐次去读书,循环N次即可。

public class Solution {
    public String countAndSay(int n) {
		if (n == 1) {
			return "1";
		}
		String answer = "1";
		for (int i = 0; i < n - 1; i++) {
			answer = new Solution().readNum(answer);
		}
		return answer;
	}

	public String readNum(String num) {
		int n = 1;
		String t = num.substring(0, 1);
		StringBuffer answer=new StringBuffer();
		String k = "";
		for (int i = 1; i < num.length(); i++) {
			k = num.substring(i, i + 1);
			if (k.equals(t)) {
				n++;
			} else {
				answer=answer.append(n).append(t);
				t = k;
				n = 1;
			}
		}
		answer = answer.append(n).append(t);
		return answer.toString();
	}
}


耗时:232ms,勉强中上游,此次测试了下用StringBuffer代替String有效的提高了效率,感觉好无趣。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:62587次
    • 积分:3004
    • 等级:
    • 排名:第11635名
    • 原创:247篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论