CSL 的字串 棧,模擬

2022-09-17 07:33:07 字數 1114 閱讀 3177

csl 以前不會字串演算法,經過一年的訓練,他還是不會……於是他打算向你求助。

給定乙個字串,只含有可列印字元,通過刪除若干字元得到新字串,新字串必須滿足兩個條件:

輸入描述:

僅一行,有乙個只含有可列印字元的字串 s。|s

|≤105

'>|s|≤1e5

輸出描述:

在一行輸出字典序最小的新字串。
示例1

輸入

bab

輸出

ab
示例2輸入

baca

輸出

bac

備註:

ascii字符集包含 94 個可列印字元(0x21 - 0x7e),不包含空格。

題解:使用棧進行模擬,如果當前字元已經在棧中,則跳過(保證了每個字元只存一次),否則進行如下操作:如果當前字元比棧頂元素小並且棧頂元素在之後的序列中仍有剩餘,就彈出棧頂元素,持續這個過程直到棧頂元素比當前元素小或者棧頂元素沒有剩餘,然後把當前字元放入棧中(保證了所有字元都會存入棧中)

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9 typedef long

long

ll;10

const ll mod= 998244353;11

char cc[100005],ch[100005

];12

intin[10005

];13

bool vis[10005

];14

intmain()

20int tot=0;21

for(int i=0;i)

29 cc[++tot]=ch[i];30}

31}32for(int i=1;i<=tot;i++)

35 printf("\n"

);36

return0;

37 }

view code

CSL的字串(棧)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld csl 以前不會字串演算法,經過一年的訓練,他還是不會 於是他打算向你求助。給定乙個字串,只含有可列印字元,通過刪除若干字元得到新字串,新字串必須滿足兩個條件 僅...

CSL 的字串(思維 STL操作)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld csl 以前不會字串演算法,經過一年的訓練,他還是不會 於是他打算向你求助。給定乙個字串,只含有可列印字元,通過刪除若干字元得到新字串,新字串必須滿足兩個條件 僅...

CSL 的字串(思維 STL操作)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 524288k,其他語言1048576k 64bit io format lld csl 以前不會字串演算法,經過一年的訓練,他還是不會 於是他打算向你求助。給定乙個字串,只含有可列印字元,通過刪除若干字元得到新字串,新字串必須滿足兩個條件 僅...