Here, we will help to understand about how to solve Strictly Palindromic Number Solution of leet code 2396 with code and algorithm.
You are given an integer n. An integer n
is strictly palindromic if, for every base b
between 2
and n - 2
(inclusive). The string representation of the integer n
in base b
is palindromic.
You are given an integer n
, return true
if n
is strictly palindromic else false
.
A string is palindromic if it reads the same forward and backward.
Example:
1) Input: n = 9 Output: false Explanation: In base 2: 9 = 1001 (base 2), which is palindromic. In base 3: 9 = 100 (base 3), which is not palindromic. Therefore, 9 is not strictly palindromic so we return false. Note that in bases 4, 5, 6, and 7, n = 9 is also not palindromic. 2) Input: n = 4 Output: false Explanation: We only consider base 2: 4 = 100 (base 2), which is not palindromic. Therefore, we return false.
Strictly Palindromic Number in C++
Code 1:
#include <iostream> #include <set> #include <vector> using namespace std; string convert_number_to_base(int n, int base) { string str = ""; while(n) { str += to_string(n % base); n /= base; } return str; } bool check_palindrom(string str) { int str_len = str.length(); for(int i = 0; i < str_len / 2; i++) { if(str[i] != str[str_len - i - 1]) { return false; } } return true; } bool isStrictlyPalindromic(int n) { for(int i = 2; i <= n - 2; i++) { string base_str = convert_number_to_base(n, i); bool is_palindrom = check_palindrom(base_str); if (!is_palindrom) { return false; } } return true; } int main() { cout<<isStrictlyPalindromic(7); return 0; }
Output:
false
To check more leetcode problem’s solution. Pls click given below link:
https://techieindoor.com/category/leetcode/