Header Ads Widget

Chef and String | codechef solution

 

Problem

Chef has a string  consisting of lowercase English characters. Chef defined functions left shift () and right shift () as follows.

  • () is defined as shifting all characters of string  one step towards left and moving the first character to the end.
  • () is defined as shifting all characters of string  one step towards the right and moving the last character to the beginning.

For example, L("abcd") = "bcda" and R("abcd") = "dabc"

Chef wants to find out whether there exists a string  of the same length as  such that both ()= and ()= holds.

###Input:

  • The first line of the input contains a single integer  denoting the number of test cases. The description of  test cases follows.
  • The first line of each test case contains a string .

###Output: For each test case, If there exists a valid string , print "YES", otherwise print "NO" (without the quotes).

###Constraints

  • 1100
  • 1106
  •  contains all lower case English alphabets.
  • It's guaranteed that the total length of the strings in one test file doesn't exceed 106

Sample 1:

Input
Output
4
a
ab
abcd
aaaaa
YES
YES
NO
YES

Explanation:

  • In the first test case, Chef can choose =
  • In the second test case, Chef can choose  = "ba" which satisfies both conditions.
  • There doesn't exist any valid choice for string  in the third test case.
Code(C++):-
#include <iostream>
using namespace std;

string lShift(string s) {
return s.substr(1, s.length() - 1) + s.substr(0,1);
}

string rShift(string s) {
return s.back() + s.substr(0, s.length() - 1);
}

int main() {
int t;
cin >> t;
while (t--) {
string s;
cin >> s;
cout << ((lShift(s) == rShift(s)) ? "YES" : "NO") << endl;
}
}

Recommended Post :-

HCL Coding Questions:-

Capgemini Coding Questions:-

Companies interview:-

Full C course:-    

Key points:-

Cracking the coding interview:-

 Array and string:-

Tree and graph:-

Hackerearth Problems:-

Hackerrank Problems:-

Data structure:-

 MCQs:-