中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何刪除字符串中的所有相鄰重復項

發布時間:2022-03-17 10:01:20 來源:億速云 閱讀:244 作者:iii 欄目:大數據

這篇文章主要介紹了Java如何刪除字符串中的所有相鄰重復項的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java如何刪除字符串中的所有相鄰重復項文章都會有所收獲,下面我們一起來看看吧。

算法:

棧一個比較常用的場景就是對字符串的操作,比如去重,退格,字符串表示的路徑等,操作往往比較簡單。

1.先把最為條件判斷的字符串入棧2.根據新到來的元素判斷要不要出棧3.最為比較的元素往往存在棧內,比較的時候,  有時候比較棧頂元素,有時候整個棧都要比較

題目1: 刪除字符串中的所有相鄰重復項

代碼實現:

func removeDuplicates(S string) string {    ss := []byte(S)    var stacks []byte    for i := 0; i< len(ss);i++ {        if len(stacks) != 0 {            j:= len(stacks)-1            if ss[i] == stacks[j]{ // 與棧頂元素相同的話,刪除棧內數據并且也不入棧                stacks = stacks[:j]                continue            }           }         stacks = append(stacks,ss[i])// 其他情況都入棧    }    return string(stacks)}/*棧的使用,先入棧,后面的元素與棧頂元素相同,出棧并且新元素不入棧。其他場景都入棧。*/

題目2: 比較含退格的字符串

代碼實現:

func backspaceCompare(S string, T string) bool {    s := getStack(S)    t := getStack(T)    return s == t}func getStack(S string) string {    ss := []byte(S)    var stacks []byte    for i:=0;i<len(ss);i++{        if ss[i] != '#' {            stacks = append(stacks,ss[i])        } else {            if len(stacks) > 0 { // 注意 ”#abc“這種#在最前面的情況                stacks = stacks[:len(stacks)-1]            }        }    }    return string(stacks)}

題目3:簡化路徑

代碼實現:

import "strings"func simplifyPath(path string) string {    tmps := strings.Split(path,"/")    var paths []string    for _,s:=range tmps {        if len(s) != 0{            paths = append(paths,s)         }    }    // fmt.Println("name",paths)    var stacks []string    for i:=0;i<len(paths);i++{
       if paths[i]==".." {            if len(stacks) > 0{                stacks=stacks[:len(stacks)-1]            }            continue        }        if paths[i]!="."{            stacks=append(stacks,paths[i])        }    }    // fmt.Println("name",stacks,len(stacks))    resStr :=""    for idx,s:=range stacks {        resStr += s        if idx != len(stacks)-1{            resStr += "/"        }      }
   return "/"+resStr}

關于“Java如何刪除字符串中的所有相鄰重復項”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java如何刪除字符串中的所有相鄰重復項”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石楼县| 新邵县| 崇阳县| 荃湾区| 铅山县| 高州市| 禹州市| 普陀区| 手游| 庆城县| 苍溪县| 化州市| 丰镇市| 军事| 天门市| 肇东市| 西昌市| 信丰县| 乐至县| 河西区| 易门县| 长汀县| 从江县| 镶黄旗| 延吉市| 双鸭山市| 黄冈市| 汉源县| 仲巴县| 尼木县| 柯坪县| 南涧| 黎平县| 隆回县| 江永县| 大兴区| 天峨县| 治多县| 双流县| 肥西县| 嘉峪关市|