Skip to content

Instantly share code, notes, and snippets.

@ArunHub
Created December 27, 2019 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ArunHub/d6bf5a4881e0eac86a050872edcdb7d4 to your computer and use it in GitHub Desktop.
Save ArunHub/d6bf5a4881e0eac86a050872edcdb7d4 to your computer and use it in GitHub Desktop.
function solution(s) {
let isPrime = (r)=>{
for (var i = 2; i <= Math.floor(Math.sqrt(r)); i++) {
if (r % i === 0) return false;
return true;
}
}
// for(var u=0; u<5;u++){console.log('uu',u);if(u==2) {return true}}
let n = s.length;
let max = -1, maxStr = "";
for (var i = 0; i < n - 1; i++) {
for (var j = n - 1; j > i; j--) {
let t = j - i + 1, len = 0;
while (i + len < j - len && s.charAt(i + len) === s.charAt(j - len)) {
len++;
}
if(t===len*2 || t===len*2+1){
if(max<t){
max=t;
maxStr = s.substring(i,j+1);
console.log('max',maxStr);
}
}
}
}
if(max!==1 && isPrime(max)){
return "YES";
}else{
return "NO";
}
}
console.time('dfd');
var dd = solution('ran1232321random');console.timeEnd('dfd');
console.log(dd)
function findsubPalindrome(str) {
let n = str.length;
if (!isOdd(n)) {
return "NO"
}
let d = Math.floor(n / 2);
console.log(d)
let fp = str.slice(0, d);
let lp = str.slice(d + 1);
let count = 0;
return insideLoop();
function isPrime(r){
for (var i = 2; i <= Math.floor(Math.sqrt(r)); i++) {
console.log(i, 'r', r);
if (r % i === 0)
return false;
return true;
}
}
function insideLoop() {
if (fp === reverseStr(lp) && sameFL(str, n)) {
console.log('first')
return "YES"
} else if(str[d+1]===str[d-1]) {
let sub = [];
let middle = d;
for (let k = d + 1; k < n; k++) {
let f = str.charAt(k);
let b = str.charAt(--d);
console.log(f, " === ", b);
if (f === b) {
count++;
sub.push(f);
sub.unshift(b);
}
}
sub.splice(Math.floor(sub.length / 2), 0, str[middle]);
var joinit = sub.join('');
console.log('count', count * 2 + 1)
if (isPrime(joinit.length)) {
return "YES";
} else {
return "NO";
}
}else {
console.log('ddddd');
}
}
function isOdd(n) {
return n % 2 !== 0 ? true : false;
}
function sameFL(str, n) {
return str.charAt(0) === str.charAt(n - 1) ? true : false;
}
}
function reverseStr(str) {
var temp = "";
var n = str.length;
for (var k = n - 1; k >= 0; k--) {
temp = temp + str.charAt(k);
}
return temp;
}
// findsubPalindrome('malayalam');
var ddd = findsubPalindrome('rd1232321random');
console.time('dfd');
console.log(ddd);
console.timeEnd('dfd');
function findsubPalindrome(ss) {
let s = ss;
let n = s.length;
let d = Math.floor(n / 2);
let ls = s.slice(d).length;
let len = s.length;
let lp = s.slice(d+1);
let fp = s.slice(0,d);
let reverse = function(str){
var temp = "";
var n = str.length;
for(var k=n-1;k>=0;k--){
temp = temp+str.charAt(k);
}
return temp;
}
var sdfs = reverse('alam');
console.log(sdfs,"dfs");
if(n%2!==0 && s.charAt(0)===s.charAt(n-1)){
if(fp === reverse(lp)){
return "YES"
}else{
}
}else{
return "NO"
}
//d=4 ls=5
console.log(fp,'ds',lp)
let checkRev = (t)=>{
for (var j = d - 1; j > -1; j--) {
if (t === s.charAt(j)) {
console.log(s.charAt(j), 'j', t);
return true;
}
}
}
var ddss = [];
for (var i = d + 1; i < len; i++) {
var dd = checkRev(s.charAt(i));
ddss.push(dd);
}
console.log('dsfa',ddss)
}
findsubPalindrome('teet');
function subpalin(str) {
var strlen = str.length - 1;
var subarr = [];
function findstr(len, d) {
return str.slice(len - d, len + d + 1);
}
let subp = ()=>{
while (strlen > 0) {
console.log(str.charAt(strlen));
if (str.charAt(strlen + 1) !== str.charAt(strlen - 1)) {
strlen--;
} else {
var small = findstr(strlen, 1);
subarr.push(small);
// for(var k=2;gop();k++)
// console.log(small, 'small');
var k = 2;
function gop() {
if (str.charAt(strlen + k) === str.charAt(strlen - k)) {
return true;
} else {
console.log(k,'k');
return false;
}
}
while (gop()) {
k++;
}
subarr.push(findstr(strlen, k-1));
k = 2;
console.log(k, 'kstr', strlen + "------"+ subarr);
strlen--;
}
}
}
if (str.charAt(0) !== str.charAt(strlen)) {
subp();
}
return "Yes"
}
subpalin('rand1232321random');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment