mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
update 0151.翻转字符串里的单词: 修改错字,优化python代码格式
This commit is contained in:
@ -119,7 +119,7 @@ void removeExtraSpaces(string& s) {
|
|||||||
1. leetcode上的测试集里,字符串的长度不够长,如果足够长,性能差距会非常明显。
|
1. leetcode上的测试集里,字符串的长度不够长,如果足够长,性能差距会非常明显。
|
||||||
2. leetcode的测程序耗时不是很准确的。
|
2. leetcode的测程序耗时不是很准确的。
|
||||||
|
|
||||||
版本一的代码是比较如何一般思考过程,就是 先移除字符串钱的空格,在移除中间的,在移除后面部分。
|
版本一的代码是一般的思考过程,就是 先移除字符串前的空格,再移除中间的,再移除后面部分。
|
||||||
|
|
||||||
不过其实还可以优化,这部分和[27.移除元素](https://programmercarl.com/0027.移除元素.html)的逻辑是一样一样的,本题是移除空格,而 27.移除元素 就是移除元素。
|
不过其实还可以优化,这部分和[27.移除元素](https://programmercarl.com/0027.移除元素.html)的逻辑是一样一样的,本题是移除空格,而 27.移除元素 就是移除元素。
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ void removeExtraSpaces(string& s) {//去除所有空格并在相邻单词之间
|
|||||||
|
|
||||||
此时我们已经实现了removeExtraSpaces函数来移除冗余空格。
|
此时我们已经实现了removeExtraSpaces函数来移除冗余空格。
|
||||||
|
|
||||||
还做实现反转字符串的功能,支持反转字符串子区间,这个实现我们分别在[344.反转字符串](https://programmercarl.com/0344.反转字符串.html)和[541.反转字符串II](https://programmercarl.com/0541.反转字符串II.html)里已经讲过了。
|
还要实现反转字符串的功能,支持反转字符串子区间,这个实现我们分别在[344.反转字符串](https://programmercarl.com/0344.反转字符串.html)和[541.反转字符串II](https://programmercarl.com/0541.反转字符串II.html)里已经讲过了。
|
||||||
|
|
||||||
代码如下:
|
代码如下:
|
||||||
|
|
||||||
@ -434,47 +434,49 @@ python:
|
|||||||
```Python
|
```Python
|
||||||
class Solution:
|
class Solution:
|
||||||
#1.去除多余的空格
|
#1.去除多余的空格
|
||||||
def trim_spaces(self,s):
|
def trim_spaces(self, s):
|
||||||
n=len(s)
|
n = len(s)
|
||||||
left=0
|
left = 0
|
||||||
right=n-1
|
right = n-1
|
||||||
|
|
||||||
while left<=right and s[left]==' ': #去除开头的空格
|
while left <= right and s[left] == ' ': #去除开头的空格
|
||||||
left+=1
|
left += 1
|
||||||
while left<=right and s[right]==' ': #去除结尾的空格
|
while left <= right and s[right] == ' ': #去除结尾的空格
|
||||||
right=right-1
|
right = right-1
|
||||||
tmp=[]
|
tmp = []
|
||||||
while left<=right: #去除单词中间多余的空格
|
while left <= right: #去除单词中间多余的空格
|
||||||
if s[left]!=' ':
|
if s[left] != ' ':
|
||||||
tmp.append(s[left])
|
tmp.append(s[left])
|
||||||
elif tmp[-1]!=' ': #当前位置是空格,但是相邻的上一个位置不是空格,则该空格是合理的
|
elif tmp[-1] != ' ': #当前位置是空格,但是相邻的上一个位置不是空格,则该空格是合理的
|
||||||
tmp.append(s[left])
|
tmp.append(s[left])
|
||||||
left+=1
|
left += 1
|
||||||
return tmp
|
return tmp
|
||||||
#2.翻转字符数组
|
|
||||||
def reverse_string(self,nums,left,right):
|
#2.翻转字符数组
|
||||||
while left<right:
|
def reverse_string(self, nums, left, right):
|
||||||
nums[left], nums[right]=nums[right],nums[left]
|
while left < right:
|
||||||
left+=1
|
nums[left], nums[right] = nums[right], nums[left]
|
||||||
right-=1
|
left += 1
|
||||||
|
right -= 1
|
||||||
return None
|
return None
|
||||||
#3.翻转每个单词
|
|
||||||
|
#3.翻转每个单词
|
||||||
def reverse_each_word(self, nums):
|
def reverse_each_word(self, nums):
|
||||||
start=0
|
start = 0
|
||||||
end=0
|
end = 0
|
||||||
n=len(nums)
|
n = len(nums)
|
||||||
while start<n:
|
while start < n:
|
||||||
while end<n and nums[end]!=' ':
|
while end < n and nums[end] != ' ':
|
||||||
end+=1
|
end += 1
|
||||||
self.reverse_string(nums,start,end-1)
|
self.reverse_string(nums, start, end-1)
|
||||||
start=end+1
|
start = end + 1
|
||||||
end+=1
|
end += 1
|
||||||
return None
|
return None
|
||||||
|
|
||||||
#4.翻转字符串里的单词
|
#4.翻转字符串里的单词
|
||||||
def reverseWords(self, s): #测试用例:"the sky is blue"
|
def reverseWords(self, s): #测试用例:"the sky is blue"
|
||||||
l = self.trim_spaces(s) #输出:['t', 'h', 'e', ' ', 's', 'k', 'y', ' ', 'i', 's', ' ', 'b', 'l', 'u', 'e'
|
l = self.trim_spaces(s) #输出:['t', 'h', 'e', ' ', 's', 'k', 'y', ' ', 'i', 's', ' ', 'b', 'l', 'u', 'e'
|
||||||
self.reverse_string( l, 0, len(l) - 1) #输出:['e', 'u', 'l', 'b', ' ', 's', 'i', ' ', 'y', 'k', 's', ' ', 'e', 'h', 't']
|
self.reverse_string(l, 0, len(l)-1) #输出:['e', 'u', 'l', 'b', ' ', 's', 'i', ' ', 'y', 'k', 's', ' ', 'e', 'h', 't']
|
||||||
self.reverse_each_word(l) #输出:['b', 'l', 'u', 'e', ' ', 'i', 's', ' ', 's', 'k', 'y', ' ', 't', 'h', 'e']
|
self.reverse_each_word(l) #输出:['b', 'l', 'u', 'e', ' ', 'i', 's', ' ', 's', 'k', 'y', ' ', 't', 'h', 'e']
|
||||||
return ''.join(l) #输出:blue is sky the
|
return ''.join(l) #输出:blue is sky the
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user