Comments (3)
可以投机取巧取得非常快的速度……
-
生成30内的答案
res = ["","1"]
for i in range(2,31):
num = res[i-1][0]
ct = 0
ans = ""
for s in res[i-1]:
if num == s:
ct += 1
else:
ans += str(ct)+num
num = s
ct = 1
if num is not None and ct>0:
ans += str(ct)+num
res.append(ans)
import json
print(json.dumps(res)) -
把答案复制到代码前,求解函数只需要一句话
ans = …………
class Solution:
def countAndSay(self, n: int) -> str:
return ans[n]
from blog.
一刷的代码:
class Solution {
public String countAndSay(int n) {
StringBuilder s = new StringBuilder("1");
while (--n > 0) {
StringBuilder tmp = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
int count = 1;
char c = s.charAt(i);
while (i < s.length() - 1 && s.charAt(i + 1) == c) {
i++;
count++;
}
tmp.append(count).append(c);
}
s = tmp;
}
return s.toString();
}
}
二刷的代码:
class Solution {
public String countAndSay(int n) {
String ans = "1";
for (int i = 2; i <= n; i++) {
ans = generate(ans);
}
return ans;
}
private String generate(String s) {
StringBuilder sb = new StringBuilder();
int count = 1;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == s.charAt(i - 1)) {
count++;
} else {
sb.append(count).append(s.charAt(i - 1));
count = 1;
}
}
sb.append(count).append(s.charAt(s.length() - 1));
return sb.toString();
}
}
from blog.
由前面的结果推后面的结果
class Solution:
def countAndSay(self, n: int) -> str:
def next_num(tmp):
res = ""
i = 0
tmp_n = len(tmp)
while i < tmp_n:
count = 1
while i < tmp_n - 1 and tmp[i] == tmp[i+1]:
count += 1
i += 1
res += (str(count) + tmp[i])
i += 1
return res
res = "1"
for i in range(1, n):
res = next_num(res)
return res
from blog.
Related Issues (13)
- 天天算法 LeetCode-674-最长连续递增序列 HOT 3
- 画解算法 92-反转链表 II HOT 3
- 画解算法 704-二分查找 HOT 2
- 画解算法 77-组合 HOT 4
- 画解算法 260-只出现一次的数字 III HOT 2
- 画解算法 520-检测大写字母 HOT 1
- 画解算法 242-有效的字母异位词 HOT 1
- 画解算法 152-乘积最大子序列
- 画解算法 171-Excel表列序号
- 画解算法 1-两数之和
- 画解算法 16-最接近的三数之和 HOT 1
- 留言 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blog.