38. Count and Say
Содержание
Задача
Последовательность count-and-say это последовательность целых чисел:
1. 1
2. 11
3. 21
4. 1211
5. 1112211 читаетс как “одна единицы” или 11.
11 читается как “две единицы” или 21.
21читается как “одна двойка, одна единица” или 1211.
пример 1
Input: 1
Output: "1"
Explanation: This is the base case.пример 2
Input: 4
Output: "1211"
Explanation: For n = 3 the term was "21" in which we have two groups "2" and "1", "2" can be read as "12" which means frequency = 1 and value = 2, the same way "1" is read as "11", so the answer is the concatenation of "12" and "11" which is "1211".Решение
Считать похожие элементы
func countAndSay(n int) string {
res := "1"
for idx:=2;idx<=n;idx++ {
count:=1
cur:=res[0]
tmp:=""
for jdx:=1;jdx<len(res);jdx++ {
if res[jdx]==cur {
count++
} else {
tmp =tmp+strconv.Itoa(count)+string(cur)
count=1
cur=res[jdx]
}
}
tmp =tmp+strconv.Itoa(count)+string(cur)
res = tmp
}
return res
}