Cerinta completa

Given a string of lowercase letters in the range ascii[a-z], determine the index of a character that can be removed to make the string a palindrome. There may be more than one solution, but any will do. If the word is already a palindrome or there is no solution, return -1. Otherwise, return the index of a character to remove.

Example

Either remove ‘b’ at index or ‘c’ at index .

Function Description

Complete the palindromeIndex function in the editor below.

palindromeIndex has the following parameter(s):

  • string s: a string to analyze

Returns

  • int: the index of the character to remove or

Input Format

The first line contains an integer , the number of queries.
Each of the next lines contains a query string .

Constraints

  • All characters are in the range ascii[a-z].

Sample Input

STDIN   Function
-----   --------
3       q = 3
aaab    s = 'aaab' (first query)
baa     s = 'baa'  (second query)
aaa     s = 'aaa'  (third query)

Sample Output

3
0
-1

Explanation

Query 1: “aaab”
Removing ‘b’ at index results in a palindrome, so return .

Query 2: “baa”
Removing ‘b’ at index results in a palindrome, so return .

Query 3: “aaa”
This string is already a palindrome, so return . Removing any one of the characters would result in a palindrome, but this test comes first.

Note: The custom checker logic for this challenge is available here.


Limbajul de programare folosit: python3

Cod:

#!/bin/python3

def is_pal(s, l, r):
    while l < r:
        if s[l] != s[r]:
            return False
        l += 1
        r -= 1
    return True

def palindromeIndex(s):
    l, r = 0, len(s) - 1
    while l < r and s[l] == s[r]:
        l += 1
        r -= 1
    if l >= r:
        return -1
    if is_pal(s, l + 1, r):
        return l
    if is_pal(s, l, r - 1):
        return r
    return -1

if __name__ == '__main__':
    q = int(input().strip())
    out = []
    for _ in range(q):
        out.append(str(palindromeIndex(input().strip())))
    print(*out, sep='\n')

Scor obtinut: 1.0

Submission ID: 464591096

Link challenge: https://www.hackerrank.com/challenges/palindrome-index/problem

Palindrome Index