344反转字符串,557. 反转字符串中的单词 III
反转字符串
双指针,分别指向字符数组的头和尾,交换后,两个指针同时向中间移动
func reverseString(s []byte) {
for left,right:=0,len(s)-1;left<right;left++{
s[left],s[right]=s[right],s[left]
right--
}
}
反转字符串中的单词 III
go语言的字符串是一个[]byte数组,其本质是一个只读数组,不可改变,因此只能使用额外数组来解决这一问题
func reverseWords(s string) string {
length:=len(s)
rev:=[]byte{}
for i:=0;i<length;{
start:=i
for i<length&&s[i]!=' '{
i++
}
for j:=start;j<i;j++{
rev=append(rev,s[start+i-j-1])
}
for i<length&&s[i]==' '{
i++
rev=append(rev,' ')
}
}
return string(rev)
}