Skip to content

Commit a222dba

Browse files
authored
Create 3170. Lexicographically Minimum String After Removing Stars (#810)
2 parents 97d6c68 + c5a51f0 commit a222dba

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Solution {
2+
public:
3+
bool find(int target,vector<int>&arr){
4+
int l = 0;
5+
int r = arr.size()-1;
6+
int ans = -1;
7+
while(l<=r){
8+
int mid = l + (r-l)/2;
9+
if(arr[mid]==target){
10+
return true;
11+
}
12+
else if(arr[mid]<target){
13+
l = mid + 1;
14+
}
15+
else{
16+
r = mid - 1;
17+
}
18+
}
19+
return false;
20+
}
21+
string clearStars(string s) {
22+
map<char,vector<int>>mp;
23+
for(int i=0;i<s.length();i++){
24+
if(s[i]!='*'){
25+
mp[s[i]].push_back(i);
26+
}
27+
if(s[i]=='*'){
28+
char ch = mp.begin()->first;
29+
mp[ch].pop_back();
30+
if(mp[ch].size()==0){
31+
mp.erase(ch);
32+
}
33+
}
34+
}
35+
string ans = "";
36+
for(int i=0;i<s.length();i++){
37+
if(find(i,mp[s[i]])){
38+
ans.push_back(s[i]);
39+
}
40+
}
41+
return ans;
42+
}
43+
};

0 commit comments

Comments
 (0)