Diberi n integer positif, keluarkan item ke-n jujukan penampilan.
"Jujukan rupa" ialah jujukan integer, bermula dari nombor 1, dan setiap item dalam jujukan ialah perihalan item sebelumnya.
Anda boleh menganggapnya sebagai jujukan rentetan angka yang ditakrifkan oleh formula rekursif:
countAndSay(1) = "1"
countAndSay(n) ialah perihalan countAndSay(n-1), yang kemudiannya ditukar kepada rentetan angka yang lain.
Lima item pertama adalah seperti berikut:
1, 1 —— 🎜>
2, 11 - Terangkan item sebelumnya, nombor ini ialah 1, iaitu "a 1", direkodkan sebagai "11"countAndSay(1) = "1";
countAndSay(n ) ialah Perihalan countAndSay(n-1) dan kemudian ditukar kepada rentetan angka yang lain.Kami mentakrifkan rentetan S_{i} untuk mewakili countAndSay(i) Jika kami memerlukan S_{n}, kami perlu mencari S_{n-1} dahulu, dan kemudian ikut penerangan di atas Penjanaan kaedah, iaitu, mengimbas bilangan maksimum aksara serupa berturut-turut dalam rentetan S_{n-1} dari kiri ke kanan, kemudian menukar nombor statistik aksara kepada rentetan berangka dan menggabungkan aksara yang sepadan.
N ialah integer positif yang diberikan, M ialah panjang maksimum dalam rentetan yang dijana
class Solution { public String countAndSay(int n) { String str = "1"; for (int i = 2; i <= n; ++i) { StringBuilder sb = new StringBuilder(); int start = 0; int pos = 0; while (pos < str.length()) { while (pos < str.length() && str.charAt(pos) == str.charAt(start)) { pos++; } sb.append(Integer.toString(pos - start)).append(str.charAt(start)); start = pos; } str = sb.toString(); } return str; } }
N ialah integer positif yang diberikan, M ialah panjang maksimum dalam rentetan yang dijana
func countAndSay(n int) string { if n == 1 { return "1" } s := countAndSay(n - 1) i, res := 0, "" length := len(s) for j := 0; j < length; j++ { if s[j] != s[i] { res += strconv.Itoa(j-i) + string(s[i]) i = j } } res += strconv.Itoa(length-i) + string(s[i]) return res }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan urutan penampilan algoritma Go Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!