題目:
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串"abcdefg"和數字2,該函式將返回左旋轉兩位得到的結果"cdefgab"。
解法:
方法一:字串切片
獲取字串 s[n:]切片–從n開始到最後和 s[:n] 切片-從開頭取到n(不包括n),使用 「+」 運算子拼接並返回即可。
class
solution
:def
reverseleftwords
(self, s:
str, n:
int)
->
str:
return s[n:
]+ s[
:n]
方法二:列表遍歷拼接
輸出的結果有雙引號,把雙引號去除?
join這個方法,將可迭代的資料型別,轉為字串或者bytes,沒錯可以轉為bytes型別。注意這個可迭代的資料中的元素必須是相同型別的。
我們實現join方法就是,將可迭代的物件先轉為list型別,然後再執行上面那段**(for迴圈那段)。這樣大概能完成jion方法了
join方法最終返回值為str型別或者bytes型別,返回什麼型別,要看是哪種型別的資料呼叫了join方法,比如上面的那些**,全是由字串呼叫,所以返回的也都是字串型別。
例子:
# 修改過後**
class
solution
(object):
defreverseleftwords
(self, s, n)
: res=
for i in
range
(n,len
(s)):)
for i in
range(0
,n):
)return
''.join(res)
# 為了更加簡便可以進行求餘計算---但是求餘之後時間是變慢啦
class
solution
:def
reverseleftwords
(self, s:
str, n:
int)
->
str:
res =
for i in
range
(n, n +
len(s)):
len(s)])
return
''.join(res)
class
solution
(object):
defreverseleftwords
(self, s, n)
: b=
""for i in
range
(n,len
(s))
: b = b+s[i]
for i in
range(0
,n):
b = b+s[i]
return b
方法對比:
面試題58 題目二 左旋轉字串
面試題58 題目二 左旋轉字串 題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串 abcdefg 左旋轉2 位得到字串 cdefgab。思路 反轉三次字串 以 abcdefg 為例,我們可以把它分為 2部分。先分別翻轉這兩部分,於是就得到 bagfedc 接下來翻轉整個字...
面試題58 ii 左旋轉字串
題目 字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 示例 1 輸入 s abcdefg k 2 輸出 cdefgab 示例 2 輸入 s lrlose...
面試題58 II 左旋轉字串
字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 示例 1 輸入 s abcdefg k 2 輸出 cdefgab 示例 2 輸入 s lrloseumgh k...