A. Square String?
time limit per test1 second
memory limit per test256 megabytes
A string is called square if it is some string written twice in a row. For example, the strings “aa”, “abcabc”, “abab” and “baabaa” are square. But the strings “aaa”, “abaaab” and “abcdabc” are not square.
For a given string s determine if it is square.
Input
The first line of input data contains an integer t (1≤t≤100) —the number of test cases.
This is followed by t lines, each containing a description of one test case. The given strings consist only of lowercase Latin letters and have lengths between 1 and 100 inclusive.
Output
For each test case, output on a separate line:
- YES if the string in the corresponding test case is square,
- NO otherwise.
You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive response).
Example
input
10
a
aa
aaa
aaaa
abab
abcabc
abacaba
xxyy
xyyx
xyxy
output
NO
YES
NO
YES
YES
YES
NO
NO
NO
YES
问题链接:CodeForces - 1619A Square String?
问题简述:给定的字符串能否从中间分成相同的两个子串?
问题分析:使用库函数strncmp()来实现,程序代码简洁。
AC的C++语言程序如下:
/* CodeForces - 1619A Square String? */
#include
#include
#define N 100 + 1
char s[N];
int main()
{
int t;
scanf("%d", &t);
while (t--) {
scanf("%s", s);
int len = strlen(s), ans = 0;
if (len % 2 == 0) {
int len2 = len / 2;
if (strncmp(s, s + len2, len2) == 0)
ans = 1;
}
puts(ans ? "YES" : "NO");
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)