CF1553B.Reverse String

普及-

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You have a string ss and a chip, which you can place onto any character of this string.

After placing the chip, you move it to the right several (maybe zero) times, i. e. you perform the following operation several times: if the current position of the chip is ii, you move it to the position i+1i + 1. Of course, moving the chip to the right is impossible if it is already in the last position.

After moving the chip to the right, you move it to the left several (maybe zero) times, i. e. you perform the following operation several times: if the current position of the chip is ii, you move it to the position i−1i - 1. Of course, moving the chip to the left is impossible if it is already in the first position.

When you place a chip or move it, you write down the character where the chip ends up after your action. For example, if ss is abcdef, you place the chip onto the 33-rd character, move it to the right 22 times and then move it to the left 33 times, you write down the string cdedcb.

You are given two strings ss and tt. Your task is to determine whether it's possible to perform the described operations with ss so that you write down the string tt as a result.

你有一个字符串 ss 和一个棋子,你可以将该棋子放置在该字符串的任意一个字符上。

放置棋子后,你需要将其向右移动若干次(可能为零次),即重复执行以下操作:若棋子当前位于位置 ii,则将其移动到位置 i+1i + 1。当然,若棋子已处于最后一个位置,则无法再向右移动。

向右移动结束后,你需要将其向左移动若干次(可能为零次),即重复执行以下操作:若棋子当前位于位置 ii,则将其移动到位置 i−1i - 1。当然,若棋子已处于第一个位置,则无法再向左移动。

每次放置棋子或移动棋子时,你需记录下棋子在该次操作结束后所处位置上的字符。例如,若 ss 为 abcdef,你将棋子放置在第 33 个字符(即 'c')上,向右移动 22 次,再向左移动 33 次,则记录下的字符串为 cdedcb。

现给你两个字符串 ss 和 tt。你的任务是判断:能否对 ss 执行上述操作,使得最终记录下的字符串恰好为 tt。

输入格式

The first line contains one integer qq (1≤q≤5001 \le q \le 500) — the number of test cases.

Each test case consists of two lines. The first line contains the string ss (1≤∣s∣≤5001 \le |s| \le 500), the second line contains the string tt (1≤∣t∣≤2⋅∣s∣−11 \le |t| \le 2 \cdot |s| - 1). Both strings consist of lowercase English characters.

It is guaranteed that the sum of ∣s∣|s| over all test cases does not exceed 500500.

第一行包含一个整数 qq(1≤q≤5001 \le q \le 500),表示测试用例的数量。

每个测试用例由两行组成。第一行包含字符串 ss(1≤∣s∣≤5001 \le |s| \le 500),第二行包含字符串 tt(1≤∣t∣≤2⋅∣s∣−11 \le |t| \le 2 \cdot |s| - 1)。两个字符串均由小写英文字母组成。

保证所有测试用例中 ∣s∣|s| 的总和不超过 500500。

输出格式

For each test case, print "YES" if you can obtain the string tt by performing the process mentioned in the statement with the string ss, or "NO" if you cannot.

You may print each letter in any case (YES, yes, Yes will all be recognized as positive answer, NO, no and nO will all be recognized as negative answer).

对于每个测试用例,如果可以通过对字符串 ss 执行题目描述中的操作来得到字符串 tt,则输出 "YES";否则输出 "NO"。

你可以以任意大小写形式输出每个字母(例如 "YES"、"yes"、"Yes" 均被视为肯定回答,"NO"、"no"、"nO" 均被视为否定回答)。

输入输出样例

  • 输入#1

    6
    abcdef
    cdedcb
    aaa
    aaaaa
    aab
    baaa
    ab
    b
    abcdef
    abcdef
    ba
    baa

    输出#1

    YES
    YES
    NO
    YES
    YES
    NO

说明/提示

Consider the examples.

The first test case is described in the statement.

In the second test case, you can place the chip on the 11-st position, move it twice to the right, and then move it twice to the left.

In the fourth test case, you can place the chip on the 22-nd position, and then don't move it at all.

In the fifth test case, you can place the chip on the 11-st position, move it 55 times to the right, and then finish the process.

请参考以下示例。

第一个测试用例已在题目描述中给出。

在第二个测试用例中,你可以将棋子放置在第 11 个位置,然后向右移动两次,再向左移动两次。

在第四个测试用例中,你可以将棋子放置在第 22 个位置,之后完全不移动它。

在第五个测试用例中,你可以将棋子放置在第 11 个位置,然后向右移动 55 次,随后结束该过程。

输入解题思路,AI测评打分。不知道怎么写?

首页