hdu 3793 浙大计算机研究生保研复试上机考试-2011年
2012-02-22 14:27
435 查看
Is It Symmetric
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 391 Accepted Submission(s): 159
Problem Description
It is easy to see that a string of digits like 1234321 is symmetric with 4 being the central digit. However it is less obvious if we consider the string as a circular one and shift it to the left as 2343211. Your task is to write a program to check if a circular
string is symmetric.
Input
Your program must read test cases from standard input.
The input file consists of several test cases. Each case occupies a line which contains the string. Each string contains less than 100 digits.
The input is finished by a "#".
Output
For each test case, your program must output to standard output. If the string is not symmetric, output "NO" in a line; else output "YES", followed by a space and the position of the center (the position index starts from 0). It is guaranteed that the length
of the string is an odd number and the center is unique.
Sample Input
2112343 798 #
Sample Output
YES 5 NO
Source
浙大计算机研究生保研复试上机考试-2011年
#include "iostream" #include "stdio.h" #include "math.h" #include "vector" #include "queue" #include "memory.h" #include "algorithm" #include "string" using namespace std; #define N 105 char str ; int Div(int s,int t) { int center=-2; if(s==t) center=-1; bool flag=(t-s+1)%2; while(t>s&&str[s]==str[t]) s++,t--; if(s>t&&!flag)//even center=-1; else if(s==t&&flag)//odd center=s; return center; } int main() { int center1,center2,center; while(cin>>str&&strcmp(str,"#")!=0) { int len=strlen(str); bool flag=false; for(int i=0;i<len;i++) { center1=Div(0,i); center2=Div(i+1,len-1); if(center1!=-2&¢er2!=-2) { center=center1==-1?center2:center1; cout<<"YES "<<center<<endl; flag=true; break; } } if(!flag) printf("NO\n"); } }
相关文章推荐
- hdu 3792-浙大计算机研究生保研复试上机考试-2011年
- hdu 3794 浙大计算机研究生保研复试上机考试-2011年
- Is It Symmetric 浙大计算机研究生保研复试上机考试-2011年
- Is It Symmetric 浙大计算机研究生保研复试上机考试-2011年
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
- hdu 4416 水题 浙大计算机研究生复试上机考试-2005年 可是发现自己写代码有问题
- A+B HDU - 3787(浙大计算机研究生复试上机考试-2010年 )
- HDU-1231 最大连续子序列 (浙大计算机研究生复试上机考试-2005年 线性dp)
- HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)
- 畅通工程 hdu 1863 最小生成树+并查集 浙大计算机研究生复试上机考试-2007年
- ZOJ问题 HDU - 3788(浙大计算机研究生复试上机考试-2010年 )
- HDU1877 又一版A+B 浙大计算机研究生复试上机考试-2008年
- hdu1233浙大计算机研究生复试上机考试(2006)还是畅通工程
- 浙大计算机研究生复试上机考试-2005年-A+B
- HDU1864-最大报销额-题意有问题-浙大计算机研究生复试上机考试-2007年
- hdu 1881 毕业bg (01背包变形)浙大计算机研究生复试上机考试-2008年
- 浙大计算机研究生复试上机考试-2007年_Prim_Kruskal_hdoj1863
- 浙大计算机研究生复试上机考试-2009年
- 浙大计算机研究生复试上机考试2010年----最短路径问题