思路:双指针,一左一右向中间靠拢,不断交换两指针数值
class Solution(object):
def reverseString(self, s):
"""
:type s: List[str]
:rtype: 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
return s
思路:一开始用暴力逆置,内存超了;看了卡尔的视频,i每次移动2k,思路很妙
class Solution(object):
def reverseStr(self, s, k):
"""
:type s: str
:type k: int
:rtype: str
"""
def reverses(text):
left=0
right=len(text)-1
while left<right:
text[left],text[right]=text[right],text[left]
left+=1
right-=1
return text
rs=list(s)
for curr in range(0,len(s),2*k):
rs[curr:curr+k]=reverses(rs[curr:curr+k])
return ''.join(rs)
思路:字符串转换成列表,遍历列表,遇到数字替换成‘number’
s=list(input())
for i in range(len(s)):
if s[i].isdigit():
s[i]='number'
print(''.join(s))
感觉join()这个方法理解的不透彻,我得研究一下
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
ls=s.split()
left=0
right=len(ls)-1
while left<right:
ls[left],ls[right]=ls[right],ls[left]
left+=1
right-=1
return ' '.join(ls)
轻松拿捏
k=int(input())
s=list(input())
n=len(s)
s=s[n-k:]+s[:n-k]
print(''.join(s))