Deletions of Two Adjacent Letters (Codeforces 1650A)
Tags: Implement, strings

The string $$$s$$$ is given, the string length is odd number. The string consists of lowercase letters of the Latin alphabet.As long as the string length is greater than $$$1$$$, the following operation can be performed on it: select any two adjacent letters in the string $$$s$$$ and delete them from the string. For example, from the string "lemma" in one operation, you can get any of the four strings: "mma", "lma", "lea" or "lem" In particular, in one operation, the length of the string reduces by $$$2$$$.Formally, let the string $$$s$$$ have the form $$$s=s_1s_2 \dots s_n$$$ ($$$n>1$$$). During one operation, you choose an arbitrary index $$$i$$$ ($$$1 \le i < n$$$) and replace $$$s=s_1s_2 \dots s_{i-1}s_{i+2} \dots s_n$$$.For the given string $$$s$$$ and the letter $$$c$$$, determine whether it is possible to make such a sequence of operations that in the end the equality $$$s=c$$$ will be true? In other words, is there such a sequence of operations that the process will end with a string of length $$$1$$$, which consists of the letter $$$c$$$?

Input: The first line of input data contains an integer $$$t$$$ ($$$1 \le t \le 10^3$$$) — the number of input test cases.The descriptions of the $$$t$$$ cases follow. Each test case is represented by two lines:  string $$$s$$$, which has an odd length from $$$1$$$ to $$$49$$$ inclusive and consists of lowercase letters of the Latin alphabet;  is a string containing one letter $$$c$$$, where $$$c$$$ is a lowercase letter of the Latin alphabet. 

Output: For each test case in a separate line output: YES, if the string $$$s$$$ can be converted so that $$$s=c$$$ is true; NO otherwise. You can output YES and NO in any case (for example, the strings yEs, yes, Yes and YES will be recognized as a positive response).

Note: In the first test case, $$$s$$$="abcde". You need to get $$$s$$$="c". For the first operation, delete the first two letters, we get $$$s$$$="cde". In the second operation, we delete the last two letters, so we get the expected value of $$$s$$$="c".In the third test case, $$$s$$$="x", it is required to get $$$s$$$="y". Obviously, this cannot be done.

Sample Inputs:
5
abcde
c
abcde
b
x
y
aaaaaaaaaaaaaaa
a
contest
t

Sample Outputs:
YES
NO
NO
YES
YES

Solution (Python):
import sys

def canSubstring(s, c):
    for i in range(len(s)):
        if s[i] == c and i % 2 == 0:
            return 'YES'
    return 'NO'
inputs = sys.stdin.readlines()
for i in range(1, len(inputs), 2):
    print(canSubstring(inputs[i].strip(), inputs[i + 1].strip()))

Solution (Python):
def fun(s, c):
    bol = False
    occur = []
    for (pos, char) in enumerate(s):
        if char == c:
            occur.append(pos)
    le = len(s)
    for i in range(len(occur)):
        if occur[i] % 2 == 0 and le % 2 != 0:
            bol = True
            break
    return bol
n = int(input())
arr = []
for i in range(n):
    s = input()
    c = input()
    if fun(s, c):
        arr.append('YES')
    else:
        arr.append('NO')
for i in range(n):
    print(arr[i])

Solution (Python):
n = int(input())
isk = ''
for i in range(n):
    flag = 'NO '
    s = input()
    c = input()
    for k in range(0, len(s), 2):
        if s[k] == c:
            flag = 'YES '
            break
    isk += flag
print(isk)