Easy-题目50:38. Count and Say
来源:互联网 发布:淘宝物流单号怎么填 编辑:程序博客网 时间:2024/05/22 08:09
题目原文:
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.
Given an integer n, generate the nth sequence.
题目大意:
按规律填空:1,11,21,1211,111221…….
规律是这样的:
1读作“1个1”并写为11;
11读作“2个1”并写为21;
21读作“1个2,1个1”并写为1211
……
求出这个数列的第n项
题目分析:
首先求出第n-1项,然后从头扫第n-1项的字符串,依次统计连续相同字符的个数。
源码:(language:java)
public class Solution { public String countAndSay(int n) { if(n==1) return "1"; else { String str=countAndSay(n-1); int i=0; String answer=""; while(i<str.length()) { int j=i; while(j<str.length() && str.charAt(i)==str.charAt(j)) j++; if(j>i) { answer+=Integer.toString(j-i); answer+=str.charAt(i); i=j; } else i++; } return answer; } }}
成绩:
36ms,beats 3.03%,众数5ms,16.44%.
cmershen的碎碎念:
本题成绩较差,是因为使用了递归?不过如果不用递归难道不从n-1项推出n项吗?
本题的数列可在OEIS的A005150查到。
0 0
- Easy-题目50:38. Count and Say
- 38. Count and Say Easy
- 38. Count and Say [easy] (Python)
- Leetcode 38. Count and Say (Easy) (cpp)
- Leet Code OJ 38. Count and Say [Difficulty: Easy]
- [Leetcode 38, Easy] Count and Say
- <LeetCode><Easy> 38 Count and Say
- Easy 38题 Count and Say
- Easy 11 Count and Say(38)
- Easy 12 Count and Say(53)
- Count and say[easy on LeetCode]
- (算法分析Week4)Count and Say[Easy]
- 38. Count and Say
- 38. Count and Say
- 38. Count and Say
- 38. Count and Say
- 38. Count and Say
- 38. Count and Say
- HDU 1020
- js事件处理函数/监听函数
- mysql安装教程
- TOEFL writing——academic vocabulary
- 图片展示JQ
- Easy-题目50:38. Count and Say
- SectionIndexer中的getSectionForPosition()与getPositionForSection()解惑
- Creational Patterns Part 2/5: Abstract Factory Pattern
- hdu 5664 Lady CA and the graph (树分治,树状数组)
- LSM-tree 一种高效的索引数据结构
- 用malloc动态申请一个二维数组的三种方法
- 整理有关javaScript的知识2
- JavaScript JSON 学习笔记
- LDAP简单介绍