题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @param n int整型
# @return string字符串
#
class Solution:
def trans(self , s: str, n: int) -> str:
# write code here
# start = 1 if s.startswith(' ') else 0
# end = 1 if s.endswith(' ') else 0
# s = s.strip()
s = s[::-1]
# 全部反转
s = s.swapcase()
# 大小写互换
ls = list(s)
result = []
flag = 0
# flag用来标记空格,判断是直接加入还是反转再加入
j = 0
# 记录切片的起点
for i in range(n):
if ls[i] != ' ':
flag = 1
# flag为1说明此处不是一个空格
if i == n-1:
result.append(''.join(reversed(s[j:])))
# 在遍历结束时如果没有遇到空格,就把剩下的一个单词反转加入列表
elif ls[i] == ' ' and flag == 0:
# flag为0且遍历到一个空格,说明是连续空格,直接将空格加入列表即可
result.append(ls[i])
j = i + 1
# 切片以下一个字符为起点
elif ls[i] == ' ' and flag == 1:
# flag为1且遍历到一个空格,说明一个单词已经遍历结束,将该单词反转加入列表
result.append(''.join(reversed(s[j:i])))
result.append(' ')
j = i + 1
# 切片以下一个字符为起点
flag = 0
# flag设置为0,说明刚刚有一个单词加入列表
return ''.join(result)
