方案一:
遞迴方法
class
solution
:def
countandsay
(self, n:
int)
->
str:
if n==1:
return
"1"elif n==2:
return
"11"
elif n==3:
return
"21"
elif n==4:
return
"1211"
elif n==5:
return
"111221"
else
: strs = self.countandsay(n-1)
lis =
list
(strs)
sts =
start =
len(lis)-1
q = lis[start]
for i in
range
(len
(lis))[
::-1
]:
temp =
q = lis[start]
if lis[i]
!=q:
temp = lis[i+1:
]del lis[i+1:
]
start = i
lens =
0 int
(q))
)int
(lis[0]
))0]
))
sts_reverse =
list
(reversed
(sts)
)return
"".join(
str(i)
for i in sts_reverse)
方案二:
模擬a=
['1']n=
4for i in
range
(n-1):
b=1''
) aa=
print
(a)for j in
range
(len
(a)-1)
:if a[j]
== a[j+1]
: b+=
1else
:str
(b))
str(a[j]))
b=1 a=aa
print(''
.join(a)
)
知識點一:
reversed 函式返回乙個反轉的迭代器。
語法以下是 reversed 的語法:
reversed
(seq)
引數seq -
- 要轉換的序列,可以是 tuple
, string,
list 或 range。
返回值返回乙個反轉的迭代器。
知識點二:
stringbuilder sb = new stringbuilder();
stringbuilder是乙個類,可以用來處理字串,最簡單的用法:
stringbuilder sb=new stringbuilder();
"123");
"456");
string str
=sb.tostring();
最後得到的str字串的值就是"123456",這種用法要比直接字串相加效率高,比如:
string s1=「123」;
string s2=「456」;
string str
=s1+s2;
得到的結果相同,但在處理大規模的字串的時候第二種方法效率會變低。
知識點三:
string.join(
)python中有join(
)和os.path.join(
)兩個函式,具體作用如下:
join(
): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成乙個新的字串
os.path.join(
): 將多個路徑組合後返回
一、函式說明
1、join(
)函式語法: 'sep'
.join(seq)
引數說明
sep:分隔符。可以為空
seq:要連線的元素序列、字串、元組、字典
上面的語法即:以sep作為分隔符,將seq所有的元素合併成乙個新的字串
返回值:返回乙個以分隔符sep連線各個元素後生成的字串
1#對序列進行操作(分別使用' '與':'作為分隔符)23
>>
> seq1 =
['hello'
,'good'
,'boy'
,'doiido']4
>>
>
print
' '.join(seq1)
5 hello good boy doiido
6>>
>
print
':'.join(seq1)
7 hello:good:boy:doiido
leetcode 外觀數列 c
外觀數列 給定乙個正整數 n 1 n 30 輸出外觀數列的第 n 項。注意 整數序列中的每一項將表示為乙個字串。外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1 11 21 1211 111221 第一項是數字 1 描述前一項,這個數是 1 即 乙個 1 ...
leetcode38 外觀數列
外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 12...
LeetCode0038 外觀數列
外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1 1121 1211 111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 1211。給定乙個正整數 ...