第一步翻转句子中所有的字符。比如翻转"I am a student."中所有的字符得到".tneduts amaI",此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了。 第二步再翻转每个单词中字符的顺序,就得到了"student a am I"。这正是符合题目要求的输出。
Code
调用Python内建函数方法
1 2 3 4 5 6 7 8
classSolution: defreverseWords(self, s: str) -> str: ifnot s: return"" s = s.strip() words = s.split(' ') words = [word for word in words if word != ''] words.reverse() return" ".join(words)
# 去除开头和结尾的空格 start = 0 char = s[start] while start < len(s)-1and char == ' ': start += 1 print(start) char = s[start] end = len(s)-1 char = s[end] while end >= 0and char == ' ': end -= 1 char = s[end] print(s[start:end+1])
# 第一步翻转句子中所有的字符。比如翻转"I am a student."中所有的字符得到".tneduts amaI",此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了。 s = revse(s[start:end+1]) # 第二步再翻转每个单词中字符的顺序,就得到了"student a am I"。这正是符合题目要求的输出。 index = 0 res = '' tmp = '' while index < len(s): char = s[index] if char == ' 'and tmp != '': res += revse(tmp) + ' ' tmp = '' elif char != ' ': tmp += char index += 1 res += revse(tmp)
classSolution: defreverseLeftWords(self, s: str, n: int) -> str: ifnot s: return"" if n > len(s): return s font = s[:n] back = s[n:] return back + font