91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

屏东市| 汶上县| 宁国市| 高唐县| 神池县| 来安县| 北碚区| 隆子县| 昆明市| 三原县| 名山县| 日喀则市| 石河子市| 邯郸县| 高台县| 榕江县| 武冈市| 涿州市| 西乡县| 上虞市| 楚雄市| 东港市| 子洲县| 商城县| 安西县| 常熟市| 青川县| 乾安县| 南乐县| 宝兴县| 漠河县| 响水县| 大石桥市| 安仁县| 昆明市| 克拉玛依市| 汪清县| 射洪县| 鄂州市| 嘉禾县| 松江区|