給你乙個字串 s ,請你去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小(要求不能打亂其他字元的相對位置)。示例 1:
輸入:s = 「bcabc」示例 2:輸出:「abc」
輸入:s = 「cbacdcbc」輸出:「acdb」
1 <= s.length <= 10^4解法一:棧s 由小寫英文本母組成
class
solution
//如果棧非空,棧頂元素大於當前字元,且棧頂元素在字串後面出現,則去掉
while
(!stack.
isempty()
&& cpeek()
&& s.
indexof
(stack.
peek()
,i)!=-1
) stack.
push
(c);
}char
str=
newchar
[stack.
size()
];for(
int i=
0;isize()
;i++
)return
newstring
(str);}
}
解法二:陣列
class
solution
for(
int i=
0;ilength()
;i++
)else
} res[c-
'a']
=true
; sb.
(c);
} num[c-
'a']-=1
;}return sb.
tostring()
;}}
316 去除重複字母
給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 我的 超時 class solution string removedu...
316 去除重複字母
給定乙個僅包含小寫字母的字串,去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 分析 這道題就是,第一去重複,第二就是選擇最小的字串。去重複倒是不難,主...
lettcode 去除重複字母
給你乙個僅包含小寫字母的字串,請你去除字串中重複的字母,使得每個字母只出現一次。需保證返回結果的字典序最小 要求不能打亂其他字元的相對位置 示例 1 輸入 bcabc 輸出 abc 示例 2 輸入 cbacdcbc 輸出 acdb 整體的思路是貪心。貪心的結果就是每一步都要保證當前字串的字典序最小。...