每天题真的太多了……怪不得比我自刷走得快呢……好多事再加上要刷题,完全一个忙不过来
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
字符串处理的时候,为了方便索引,经常转化为列表后使用(每个字母一个元素)。那么在输出的时候直接转str是无法把各个字母再合并的,就需要用 join函数 来输出了。同样可以用于以某特定间隔符一次输出列表元素。语法:
'分隔符'.join(list_name)
还有两个和MATLAB语法不同的地方
①等差数列的取法,是先写开头结尾,最后一个数放间隔
语法:range(start,end,间隔),间隔放在最后写
相同的还有列表的索引:listA[::间隔],这里默认start=开头,end=结尾,如果end<0,那么默认start=结尾,end=开头
②数组/列表的切片操作:
在Python中,对于切片操作,如果切片范围超出了列表的长度,Python不会抛出索引超出范围的错误。相反,它会尽可能地切片,只包括列表中存在的元素,并且不会引发异常。
也就是说,每次输出k个数,最后一次操作时,如果没有k个数了,不会报错索引溢出,而是直接把最后所有的元素输出。
class Solution:
def reverseStr(self, s: str, k: int) -> str:
def reverse_only(s_part):#实现输入字符串的反转
left = 0
right = len(s_part)-1
while left<right:
s_part[left],s_part[right] = s_part[right],s_part[left]
left += 1
right -= 1
return s_part
s_list = list(s)#方便用下标索引
n_s = len(s_list)
for cur in range(0,n_s,2*k):#注意Python的等差数列取法语法和MATLAB不一样
s_list[cur:cur+k] = reverse_only(s_list[cur:cur+k])#每次只输入需要反转的k个字符
return ''.join(s_list)
卡码网:54.替换数字
对Python好像没什么难的……直接赋值就完了,但是必须要使用下标索引,别犯傻!
def change_num(s):
s_list = list(s)
for i in range(len(s_list)):
if s_list[i].isdigit():
s_list[i] = 'number'
return ''.join(s_list)
s = str(input())
output_s = change_num(s)
print(output_s)
复习一个ACM,好久没写ACM格式了
151.翻转字符串里的单词
只能说刚用split写完,就看见卡哥说不让用split……
顺便复习一下:strip是删除开头和结尾的某字符,split是以某字符分割为若干个子字符
class Solution:
def reverseWords(self, s: str) -> str:
s_list = s.split()
size = len(s_list)-1
left = 0
right = size
while left<right:
s_list[left],s_list[right] = s_list[right],s_list[left]
left += 1
right -= 1
return ' '.join(s_list)
?但是看不懂卡哥和我代码的区别,就这样吧,二刷再来解决
卡码网:55.右旋转字符串
def rightchange(s,k):
s_list = list(s)
len_s = len(s_list)
part1 = s[:len_s-k]#注意Python是不包括写出来的这个末尾的值的!
part2 = s[len_s-k:]#后k个字符
s_list = [part2,part1]
return ''.join(s_list)
k = int(input())
s = str(input())
output = rightchange(s,k)
print(output)
注意Python的切片,如果把最后一个元素的位置写出来,那么是不包括这个元素的!