go陣列去除重複 leetcode316 go

2021-10-18 01:23:22 字數 649 閱讀 3164

給你乙個僅包含小寫字母的字串,請你去除字串中重複的字母,使得每個字母只出現一次。

需保證返回結果的字典序最小(要求不能打亂其他字元的相對位置)。

示例 1:輸入: "bcabc" 輸出: "abc"

示例 2:輸入: "cbacdcbc" 輸出: "acdb"

注意:該題與 1081

相同1、單調棧;時間複雜度o(n),空間複雜度o(n)

2、遞迴;時間複雜度o(n),空間複雜度o(n)

func removeduplicateletters(s string) string pos := 0for i := 0; i < len(s); i++ for i := 0; i < len(s); i++ arr[s[i]-'a']--if arr[s[i]-'a'] == 0 }if len(s) == 0 newstr := strings.replaceall(s[pos+1:], string(s[pos]), "")return string(s[pos]) + removeduplicateletters(newstr)}
hard題目,題目可以使用單調棧來處理字典序

陣列去除重複

陣列去除重複 title head body script 方法1 效率低的髒檢查辦法,letarr 11,22,33,44,11 letnewarr let len arr.length for let i 0 i let f 0 for let j i 1 j if arr i arr j if...

JS 陣列去除重複

使用new set 使用fliter 方法 var arr 1,2,3,4,5,5,4,3,2,11,3,22,11,11,22 let x arr.filter function val,index array filter 方法可以將滿足條件的數值返回。使用indexof查詢array中當前值的...

陣列去除重複的數

給定乙個陣列,要求輸出 重複的輸出一次,不重複的也輸出,陣列去除重複的數字 思路 給定的乙個陣列,首元素的值肯定是第一次出現,先輸出a 0 然後從a 1 開始課 1 前面的數比較是否相同,和a 0 比較,有重複的值時,跳出,從a 2 開始 沒有相同的數的時候則輸出a 1 同理a 2 和a 1 a 0...