5 5 堆疊操作合法性 20分

2021-08-05 19:13:16 字數 1076 閱讀 9016

5-5 堆疊操作合法性   (20分)

假設以sx分別表示入棧和出棧操作。如果根據乙個僅由sx構成的序列,對乙個空堆疊進行操作,相應操作均可行(如沒有出現刪除時棧空)且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入sx序列,判斷該序列是否合法。

輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m(\le 50≤5

0)是堆疊的最大容量。隨後n行,每行中給出乙個僅由sx構成的序列。序列保證不為空,且長度不超過100。

對每個序列,在一行中輸出yes如果該序列是合法的堆疊操作序列,或no如果不是。

4 10

sssxxsxxsx

sssxxsxxs

ssssssssssxss*********xx

sssxxs***

yes

nono

no

**如下:
#include#include#include#include#includeusing namespace std;

int main()

; scanf("%s",a);

b=strlen(a);

k=0;//用來標註兩種情況,超範圍,棧內取不盡;

stackq;

for(i=0;im)

else if(a[i]=='x'&&q.size()!=0)

else if(a[i]=='x'&&q.size()==0)

}if(q.size()!=0)

k=1;

if(k==1)

printf("no\n");

else

printf("yes\n");

} return 0;

}

5 5 堆疊操作合法性 20分

5 5 堆疊操作合法性 20分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入第一行給出兩個正整數n和m,其中n...

7 1 堆疊操作合法性(20 分)

7 1 堆疊操作合法性 20 分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入第一行給出兩個正整數n和m,其中...

7 1 堆疊操作合法性 (20 分

假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m 50 是堆...