题目都比较简单,没啥好说的,肯定有那种大神有一行答案,简单做一做
# 代码随想录训练营第III期--008--python
# ● 344.反转字符串
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
left = 0
right = len(s) - 1
while left <= right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
# ● 541. 反转字符串II
def reverseStr(self, s: str, k: int) -> str:
def miner_rev(s1, k):
left = s1[:k]
right = s1[k:]
return left[::-1]+right
# print(miner_rev(s[:2*k],k))
j = 2 * k
res = ''
for i in range(0, len(s)//j*j, j):
# print(i, s[i:i+j])
res += miner_rev(s[i:i+j], k)
# print(res)
if len(res) < len(s):
l = len(res)
tmp = s[l:]
if len(s) - l < k:
res += tmp[::-1]
else:
res += miner_rev(tmp, k)
return res
# ● 剑指Offer 05.替换空格
def replaceSpace(self, s: str) -> str:
# res = ''
# for i in s:
# if i == ' ':
# res += '%20'
# else:
# res += i
# return res
l = list(s.split(' '))
return str('%20'.join(l))
# ● 151.翻转字符串里的单词
def reverseWords(self, s: str) -> str:
l = list(s.split())
# l = l[::-1]
return str(' '.join(l[::-1]))
# ● 剑指Offer58-II.左旋转字符串
def reverseLeftWords(self, s: str, n: int) -> str:
def once(s):
first = s[0]
res = s[1:]
return res+first
for i in range(n):
s = once(s)
return s