?
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 5303 | Accepted: 3162 |
? 這一題相當得簡單只要正反比較兩次即可,運用隊列表示正向的,用棧表示反向的
代碼:
?
1
#include
<
stdio.h
>
2
#include
<
queue
>
3
#include
<
stack
>
4
?
using
namespace
std;
5
?
int
main()
6
{
7
int
t,i,mark;
8
char
s1[
105
],s2[
105
];
9
10
scanf(
"
%d
"
,
&
t);
11
while
(t
--
)
12
{
13
mark
=
0
;
14
scanf(
"
%s%s
"
,s1,s2);
15
queue
<
char
>
qu;
16
stack
<
char
>
st;
17
for
(i
=
0
;s2[i]
!=
'
\0
'
;i
++
)
18
{
19
st.push(s2[i]);
20
qu.push(s2[i]);
21
}
22
for
(i
=
0
;s1[i]
!=
'
\0
'
;i
++
)
23
{
24
char
x,y;
25
x
=
st.top();
26
y
=
qu.front();
27
if
(x
==
s1[i])
28
st.pop();
29
if
(st.empty())
30
{
31
mark
=
1
;
32
break
;
33
}
34
if
(y
==
s1[i])
35
qu.pop();
36
if
(qu.empty())
37
{
38
mark
=
1
;
39
break
;
40
}
41
}
42
if
(mark)
43
printf(
"
YES\n
"
);
44
else
45
printf(
"
NO\n
"
);
46
}
47
return
0
;
48
}
49
?
?
?
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

