All Tracks Problem

Good String
Tag(s):

Easy, string

Problem
Editorial
Analytics

A string is called a $$Good$$ string if it has the following properties:

  • The length of the string is >=2
  • The first and the last character of the string are identical.
You are given a string $$S$$ of length $$N$$ ($$N$$ >=2) . You have to make it $$Good$$ string using the following operations.
  • $$ Operation 1$$: Remove a letter from the beginning of the string.
  • $$Operation2$$: Remove a letter from the end of the string.

You can apply the $$Operation1$$ or $$Operation2$$ or both on the string $$S$$. Now your task is to find out the minimum number of operations to make the string $$S$$ a $$Good$$ string.

Input:
The first line of the input will contain $$T$$ , the number of testcases.
Next line will contain a string of a certain length. The string will consist of only lower case letters from 'a' to 'z'.

Output:
Print the minimum no of operations required. If impossible print "-1", without quotes .

Constraints:

  • $$1 \le T \le 100$$
  • $$2 \le N \le 10^4$$
SAMPLE INPUT
4
abcda
abcdefghiab
pqr
bacdefghipalop
SAMPLE OUTPUT
0
1
-1
4
Explanation

For 1st test case:
The string is $$abcda$$ , we don't need to do any operations as the the string is already satisfying the criteria
For 2nd test case:
Here we have two options either remove the last $$b$$ and make the string $$abcdefghia$$ , or remove the first $$a$$ and make the original string $$bcdefghiab$$ , hence we need only $$1$$ operation.
For 3rd test case:
No $$Good$$ string could be made
For 4th test case:
Remove the $$b$$ from the beginning , and remove $$p$$ , $$o$$ , $$l$$ from the end to make the string $$acdefghipa$$ (a $$Good$$ string ) hence total no of operations= $$ 1+3=4$$.

Time Limit: 5.0 sec(s) for each input file.
Memory Limit: 256 MB
Source Limit: 1024 KB
Marking Scheme: Marks are awarded when all the testcases pass.
Allowed Languages: C, C++, Clojure, C#, D, Erlang, F#, Go, Groovy, Haskell, Java, Java 8, JavaScript(Rhino), JavaScript(Node.js), Lisp, Lisp (SBCL), Lua, Objective-C, OCaml, Octave, Pascal, Perl, PHP, Python, Python 3, R(RScript), Racket, Ruby, Rust, Scala, Scala 2.11.8, Swift, Visual Basic

CODE EDITOR

Initializing Code Editor...
Your Rating:

Contributor

This Problem was Asked in

MobiBiz Solutions India Ltd

Challenge Name

EnableMyTeam Java/Javascript Hiring Challenge

OTHER PROBLEMS OF THIS CHALLENGE
Notifications
View All Notifications