-
Description Given a string S of length N, the task is to find the length of the longest palindromic substring from a given string.
Examples:
Input: S = “abcbab” Output: 5 Explanation: string “abcba” is the longest substring that is a palindrome which is of length 5.
Input: S = “abcdaa” Output: 2 Explanation: string “aa” is the longest substring that is a palindrome which is of length 2.
Note: If the string is empty or None or null then just return 0.do not try to convert the string to lowercase
Code def length_longest_palindrome(string): n = len(string) if n == 0: return 0 maxlen = 1 table = [[False for i in range(n)]for j in range(n)] for i in range(n): table[i][i] = True start = 0 for i in range(n-1): if string[i] == string[i+1]: table[i][i+1] = True start = i maxlen = 2 for k in range(3,n+1): for i in range(n-k+1): j = i + k - 1 if table[i+1][j-1] and string[i] == string[j]: table[i][j] = True if k > maxlen: start = i maxlen = k return maxlen
Test Cases import codewars_test as test # TODO Write tests import solution # or from solution import example # test.assert_equals(actual, expected, [optional] message) .describe("Example") def test_group(): .it("test case") def test_case(): test.assert_equals(length_longest_palindrome(''),0) test.assert_equals(length_longest_palindrome('a'),1) test.assert_equals(length_longest_palindrome('aaabbaa'),6) test.assert_equals(length_longest_palindrome('Hannah'),4) test.assert_equals(length_longest_palindrome('geeks'),2) test.assert_equals(length_longest_palindrome('forgeeksskeegfor'),10) test.assert_equals(length_longest_palindrome('aab'),2) test.assert_equals(length_longest_palindrome('Abbas'),2)
Output:
-
- All
- {{group.name}} ({{group.count}})
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report