#1.①翻轉單詞中的所有字元 ②翻轉單詞中字元順序
defreverse
(s, start, end)
:while start < end:
s[start]
, s[end]
= s[end]
, s[start]
start +=
1 end -=
1def
reversesentence
(s):
ifnot s:
return s
s =list
(s) reverse(s,0,
len(s)-1
) start, end =0,
0while start <
len(s)
:if s[start]
==''
: start +=
1 end +=
1elif end ==
len(s)
or s[end]
==' '
: reverse(s, start, end -1)
end +=
1 start = end
else
: end +=
1return
"".join(s)
print
(reversesentence(
"i am a student"))
2.字串旋轉操作
#左旋轉操作是把前面若干個字串轉移到字串尾部
#以"abcdefg"為例,可以將其分為兩部分,因為想把前兩個字元翻轉到後面,可以把前兩個字元分為一部分,後面所有的分為一部分。
# 先分別翻轉這兩部分得到bagfedc,接著在翻轉整個字串得到cdefgab,剛好就是把原始字串左旋轉兩位的結果
defleftrotatestring
(s, k)
:if s is
notnone
: s =
list
(s)if
len(s)
>
0and k >
0and k <
len(s)
: reverse(s,
0, k -1)
reverse(s, k,
len(s)-1
) reverse(s,0,
len(s)-1
)return
"".join(s)
print
(leftrotatestring(
"abcdefg",2
))
翻轉單詞順序
1.問題描述 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字幕一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 來自 劍指offer 2.分析 我們可以第一步翻轉句子中所有的字元。比如反轉 i am a stud...
翻轉單詞順序
首先將i am boy轉為yob ma i,str 0 與str len 1 交換順序,空間複雜度為o 1 然後yob ma i中每個單詞應用同樣的方法翻轉。function reverse str return strarr.join function reverseword str return...
翻轉單詞順序
輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字串 i am a student.則輸出 student.a am i 示例 1 輸入 the sky is blue 輸出 blue is sky the 示例 2 輸入 hello ...