頑皮的字母

2021-06-28 01:45:33 字數 1119 閱讀 8907

description

大家都知道有26個英文本母,abcdef…。由這些字母組成了乙個字串,但是,由於這些字母日久生情,有一些字母挨在一起的時候就會一起跑走玩耍。我們對26個字母編號1~26,就是說1對應a,…,26對應z,第i個字母和第i+1個字母相互有好感,挨在一起會跑開,i為1~26裡面的奇數,跑開之後空位由後面的字母補上。現在問題來了,輸入乙個長度為n(n<10^5)的字串,這個字串包含挨在一起的情況比如ab挨在一起,問最後剩下的字串是什麼。

input

第1行為資料組數t(t<=100)。

第2行到第t+1行為輸入字串,每行乙個字串。

保證輸入全為英文小寫字母。

output

對於每個字串,輸出一行最後剩下的字串。如果最後所有的字母都跑開了輸出「sad!」,不包括引號。

sample input

2ababababc

abacda

sample output

c      分析:開乙個棧,讓所給字母序列的第乙個字母入棧,然後判斷第二個字母是否與棧頂字母有好感,有的話,彈出棧頂字母,進行第三個字母的操作,否則將第二個字母也壓入棧,一直重複這個操作直到檢查完所有字母。最後判斷棧是否為空,若為空則說明所有字母都跑完了,否則將棧中字母全部彈出,注意,這裡輸出字母的順序是跟彈出棧的順序是相反的,多處理一下就行了。

**如下:

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

char s[10000010],ans[10000010];

int main()

{ //freopen("d:\\in.txt","r",stdin);

//freopen("d:\\out.txt","w",stdout);

int i,j,k,l,t,flag,start,cur;

cin>>t;

while(t--)

{cin>>s;

l=strlen(s);

cur=1;

ans[0]=s[0];

for(i=1;i

BNUOJ 44586 頑皮的字母 棧的應用)

第2行到第t 1行為輸入字串,每行乙個字串。保證輸入全為英文小寫字母。ababababc abacda aa解析 由於這個特殊的要求,如果用陣列來回掃的話,肯定是超時了。所以我們可以用到棧,這樣每個元素只進棧一次,時間就能達到o n 的。具體實現方法如下 先把第乙個字元入棧,再把剩下的n 1個字元入...

python字母頻率 python中的字母頻率

我需要製作乙個列印文字中字母頻率的程式 file並將該頻率與python中的另乙個頻率進行比較.到目前為止,我能夠列印出一封信的次數,但是 我得到的百分比頻率是錯誤的.我認為這是因為我只需要計算我的程式 通過刪除所有空格和其他空格來刪除檔案中的字母數 字元.def addletter x resul...

字母的爭論

某一天,26個小寫的英文本母爭論了起來,它們都想當老大,鬧得不可開交。這時逗比的小甲想到了乙個好辦法使它們平息了下來,規則是這樣的 讀入一行僅由小寫英文本母組成的字串,統計這26個小寫英文本母在這串字元中出現的次數,誰出現的此數多誰就是老大。另外,沒有出現在這串字元中的小寫英文本母就只能甘拜下風了。...