NYOJ 2 括号是否配对
来源:互联网 发布:爱福窝效果图制作软件 编辑:程序博客网 时间:2024/04/28 09:09
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出N
#include<stdio.h>
int main()
{
int t;
char c,s[10001],*p;
scanf("%d\n",&t);
while(t--){
*s=getchar();
p=s+1;
while((c=getchar())!='\n'){
if(*(p-1)==c-1||*(p-1)==c-2)
p--;
else
*p++=c;
}
if(p==s)
printf("Yes\n");
else
printf("No\n");
}
}
输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出N
#include<stdio.h>
int main()
{
int t;
char c,s[10001],*p;
scanf("%d\n",&t);
while(t--){
*s=getchar();
p=s+1;
while((c=getchar())!='\n'){
if(*(p-1)==c-1||*(p-1)==c-2)
p--;
else
*p++=c;
}
if(p==s)
printf("Yes\n");
else
printf("No\n");
}
}
思路详解:首先输入一个字符,让指针s指向首个字符,指针p指向下一个字符地址,然后判断下一个输入的字符是否为换行,若是,则退出,输出No,若否,则判断指针p的
上个位置即s指的的位置是否与输入的字符匹配,若是,则p指向上一个字符的位置,即s的位置,否则,对p指向的位置赋值,然后p++,指向下一个字符的位置,再
输入一个字符,若与p指的上一个字符位置的字符匹配,则p--,再输入一个字符,若与p指向上一个字符匹配,则p--,即与s指针重合,若输入回车键,输出Yes.
0 0
- NYOJ 2 括号是否配对
- nyoj 2 括号配对
- nyoj 2 括号配对
- nyoj--2--括号配对
- NYOJ 2 括号配对
- NYOJ 2 括号配对问题
- NYOJ--2题括号配对
- NYOJ 2 括号配对 【栈】
- NYoj 2 括号配对问题
- NYOJ-2:括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2--括号配对问题
- nyoj-2-括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- [LeetCode]Reverse Integer
- 【手势交互】7. 凌指
- Qt Creator中,include路径包含过程(或如何找到对应的头文件)
- java日期操作
- 数据结构和设计模式03(排序)
- NYOJ 2 括号是否配对
- Android\Java 面试题
- 计蒜课 二分查找法
- 百易时代C++面试题
- HDUOJ1090
- ASP内置对象—Request、Response 、Server、Application 、ObjectContent(一)
- 【计蒜客系列】挑战难题17:x的平方根
- Java中接口和抽象类的区别?
- HDU 1233 简单最小生成树 prim算法