题解 | #字符串变形#
字符串变形
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)