题目
给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: "the sky is blue"
输出: "blue is sky the"
示例 2:
输入: " hello world! "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: "a good example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
说明:
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
解法一
全部使用golang的strings包里的方法来解题。
func reverseWords(s string) string { var reverseSeg []string //获取去除空格后的单词数组 seg := strings.Fields(s) //翻转单词数组 for i := len(seg)-1;i>=0;i-- { reverseSeg = append(reverseSeg,seg[i]) } //数组-》由空格间隔的字符串 return strings.Join(reverseSeg," ") }
解法二
func reverseWords(s string) string { var result string //获取去除空格后的单词数组 str := strings.Split(s," ") //倒序组装单词和空格 for i:=len(str)-1;i>=0;i-- { if len(str[i])==0 { continue } result += str[i]+" " } if len(result)==0 { return "" } return result[:len(result)-1] }
解法三
func reverseWords(s string) string { sL := strings.Split(s, " ") c := len(sL) n := 0//表示实际有效单词的长度 i := 0//数组长度 for { if i >= c { break } if sL[i] == "" { i++ continue } else { //将有效单词前移 sL[n], sL[i] = sL[i], sL[n] n++ i++ } } //翻转有效单词 for i := 0; i < n/2; i++ { sL[i], sL[n-i-1] = sL[n-i-1], sL[i] } //返回由空格间隔的有效单词字符串 return strings.Join(sL[:n], " ") }
总结
熟练掌握golang的strings包自带函数
leetcode题解中还有一个双百的go解法,必须极其了解golang语言才能理解,所以再接再厉。
补充:Golang 翻转含有中文、数字、英文字母的字符串
rune表示:
package main import "fmt" func main() { src := "你好啊,XXX啊啊啊啊" dst := reverse([]rune(src)) fmt.Println("result is:",string(dst)) } func reverse(s []rune) []rune { for i,j :=0,len(s)-1;i<j;i,j = i+1,j-1{ s[i],s[j] = s[j],s[i] } return s }
结果如下:
byte表示:
package main import "fmt" func main() { src := "你好啊,XXX啊啊啊啊" dst := reverse([]byte(src)) fmt.Println("result is:",string(dst)) } func reverse(s []byte) []byte { for i,j :=0,len(s)-1;i<j;i,j = i+1,j-1{ s[i],s[j] = s[j],s[i] } return s }
结果如下,乱码了
总结:
rune(-2^31 ~ 2^31-1)是int32的别名,比起byte(-128~127),rune可表示的范围更大,所以能处理一切字符,当然也包括中文字符。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]