手機(jī)軟件制作和做網(wǎng)站相同短視頻培訓(xùn)學(xué)校
題目鏈接
B. YetnotherrokenKeoard
題意
輸入
輸出
思路
用兩個(gè)棧分別維護(hù)小寫字母下標(biāo)和大寫字母下標(biāo),用一個(gè)vis
數(shù)組標(biāo)記字母是否刪除
示例代碼
void solve() {string s;cin >> s;int n = s.size();vector<bool> vis(n, false);stack<int>sk1, sk2;fer(i, 0, n){if(s[i] >= 'a' && s[i] <= 'z' && s[i] != 'b') sk1.push(i);else if(s[i] >= 'A' && s[i] <= 'Z' && s[i] != 'B') sk2.push(i);if(s[i] == 'b'){vis[i] = true;if(!sk1.empty()) vis[sk1.top()] = true, sk1.pop();}else if(s[i] == 'B'){vis[i] = true;if(!sk2.empty()) vis[sk2.top()] = true, sk2.pop();}}fer(i, 0, n){if(!vis[i]) cout << s[i];}cout << '\n';
}