最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用golang的字符串解決leetcode翻轉(zhuǎn)字符串里的單詞

 更新時間:2020年12月24日 09:08:17   作者:程序員早早  
這篇文章主要介紹了利用golang的字符串解決leetcode翻轉(zhuǎn)字符串里的單詞,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

題目

給定一個字符串,逐個翻轉(zhuǎn)字符串中的每個單詞。

示例 1:

輸入: "the sky is blue"

輸出: "blue is sky the"

示例 2:

輸入: " hello world! "

輸出: "world! hello"

解釋: 輸入字符串可以在前面或者后面包含多余的空格,但是反轉(zhuǎn)后的字符不能包括。

示例 3:

輸入: "a good example"

輸出: "example good a"

解釋: 如果兩個單詞間有多余的空格,將反轉(zhuǎn)后單詞間的空格減少到只含一個。

說明:

無空格字符構(gòu)成一個單詞。

輸入字符串可以在前面或者后面包含多余的空格,但是反轉(zhuǎn)后的字符不能包括。

如果兩個單詞間有多余的空格,將反轉(zhuǎn)后單詞間的空格減少到只含一個。

解法一

全部使用golang的strings包里的方法來解題。

func reverseWords(s string) string {
 var reverseSeg []string
 //獲取去除空格后的單詞數(shù)組
 seg := strings.Fields(s)
 //翻轉(zhuǎn)單詞數(shù)組
 for i := len(seg)-1;i>=0;i-- {
  reverseSeg = append(reverseSeg,seg[i])
 }
 //數(shù)組-》由空格間隔的字符串
 return strings.Join(reverseSeg," ")
}

解法二

func reverseWords(s string) string {
 var result string
 //獲取去除空格后的單詞數(shù)組
 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//數(shù)組長度
 for {
 if i >= c {
 break
 }
 if sL[i] == "" {
 i++
 continue
 } else {
 //將有效單詞前移
 sL[n], sL[i] = sL[i], sL[n]
 n++
 i++
 }
 }
 //翻轉(zhuǎn)有效單詞
 for i := 0; i < n/2; i++ {
 sL[i], sL[n-i-1] = sL[n-i-1], sL[i]
 }
 //返回由空格間隔的有效單詞字符串
 return strings.Join(sL[:n], " ")
}

總結(jié)

熟練掌握golang的strings包自帶函數(shù)

leetcode題解中還有一個雙百的go解法,必須極其了解golang語言才能理解,所以再接再厲。

補充:Golang 翻轉(zhuǎn)含有中文、數(shù)字、英文字母的字符串

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
}

結(jié)果如下:

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
}

結(jié)果如下,亂碼了

總結(jié):

rune(-2^31 ~ 2^31-1)是int32的別名,比起byte(-128~127),rune可表示的范圍更大,所以能處理一切字符,當然也包括中文字符。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Windows下升級go版本過程詳解

    Windows下升級go版本過程詳解

    這篇文章主要為大家介紹了Windows下升級go版本過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Golang中基于HTTP協(xié)議的網(wǎng)絡(luò)服務(wù)

    Golang中基于HTTP協(xié)議的網(wǎng)絡(luò)服務(wù)

    HTTP協(xié)議是基于TCP/IP協(xié)議棧的,并且它也是一個面向普通文本的協(xié)議。這篇文章主要詳細介紹了Golang中基于HTTP協(xié)議的網(wǎng)絡(luò)服務(wù),感興趣的小伙伴可以借鑒一下
    2023-04-04
  • GoFrame框架gset交差并補集使用實例

    GoFrame框架gset交差并補集使用實例

    這篇文章主要為大家介紹了GoFrame框架gset交差并補集使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 通過案例詳細聊聊Go語言的變量與常量

    通過案例詳細聊聊Go語言的變量與常量

    在任何一門現(xiàn)代的高級語言中,變量和常量都是它非?;A(chǔ)的程序結(jié)構(gòu)的組成部分,下面這篇文章主要給大家介紹了關(guān)于如何通過案例詳細聊聊Go語言的變量與常量的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • go責任鏈行為型設(shè)計模式Chain?Of?Responsibility

    go責任鏈行為型設(shè)計模式Chain?Of?Responsibility

    這篇文章主要為大家介紹了go行為型設(shè)計模式之責任鏈Chain?Of?Responsibility使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Golang日志庫logrus的介紹與使用示例代碼

    Golang日志庫logrus的介紹與使用示例代碼

    Logrus是Go語言的一個功能豐富的日志庫,支持結(jié)構(gòu)化日志和多級別日志記錄,它兼容標準log庫,并可通過自定義Hooks和Formatter進行高度定制化,支持集成如syslog等系統(tǒng),便于管理和分析,Logrus還支持自定義日志顏色和格式,以及根據(jù)日志級別進行不同處理,如panic和exit
    2024-10-10
  • 深入探討Golang中如何進行并發(fā)發(fā)送HTTP請求

    深入探討Golang中如何進行并發(fā)發(fā)送HTTP請求

    在?Golang?領(lǐng)域,并發(fā)發(fā)送?HTTP?請求是優(yōu)化?Web?應(yīng)用程序的一項重要技能,本文探討了實現(xiàn)此目的的各種方法,文中的示例代碼講解詳細,希望對大家有所幫助
    2024-01-01
  • golang 如何通過反射創(chuàng)建新對象

    golang 如何通過反射創(chuàng)建新對象

    這篇文章主要介紹了golang 通過反射創(chuàng)建新對象的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go語言--切片(Slice)詳解

    Go語言--切片(Slice)詳解

    這篇文章主要介紹了Go語言--切片(Slice),Go 語言切片是對數(shù)組的抽象,下面文章小編將為大家詳細介紹該內(nèi)容,需要的朋友可以參考下,希望對你有所幫助
    2021-10-10
  • Golang字符串的拼接方法匯總

    Golang字符串的拼接方法匯總

    字符串拼接在日常開發(fā)中是很常見的需求,今天我們來探討下如何用golang來實現(xiàn)字符串的拼接
    2018-10-10

最新評論

平安县| 安溪县| 新营市| 鄂托克前旗| 灵璧县| 罗田县| 文化| 西和县| 右玉县| 博罗县| 嫩江县| 阳朔县| 潼南县| 黄石市| 新河县| 鹿泉市| 黑河市| 桑日县| 静海县| 田东县| 观塘区| 来凤县| 潜山县| 桃园县| 沙田区| 武平县| 定兴县| 盈江县| 金华市| 策勒县| 彝良县| 濮阳市| 宜兴市| 丘北县| 霞浦县| 当阳市| 聂荣县| 淄博市| 夏津县| 和田市| 喀喇|