CodeForces - 1619A Square String?文本处理

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces - 1619A Square String?文本处理相关的知识,希望对你有一定的参考价值。

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 <stdio.h>
#include <string.h>

#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;

以上是关于CodeForces - 1619A Square String?文本处理的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 828B Black Square(简单题)

codeforces 432E Square Tiling

codeforces 1 A题 : Theatre Square(水)

Codeforces 1A Theatre Square

(dp)CodeForces - 300D Painting Square

codeforces 711B - Chris and Magic Square