ds-algo-study
Version:
Just experimenting with publishing a package
53 lines (49 loc) • 1.56 kB
JavaScript
//Find the longest substring which is palindrome. Return null if the length is less than 2.
// function longestPalindrome(s) {
// let arr = [];
// let _s = s.split('');
// for (let i = 0; i < _s.length; i++) {
// for (let j = 0; j < _s.length; j++) {
// let word = _s.slice(0, j + 1).join('');
// let rev_word = _s.slice(0, j + 1).reverse().join('');
// if (word === rev_word) {
// arr.push(word)
// }
// }
// _s.splice(0, 1)
// }
// let _arr = arr.sort((a, b) => a.length - b.length);
// for (let i = 0; i < _arr.length; i++) {
// if (_arr[i].length>2 && _arr[arr.length - 1].length === _arr[i].length) {
// return _arr[i]
// }
// }
// return null;
// }
console.log(longestPalindrome("hellosanasmith"))//saanaas
console.log(longestPalindrome("abcdef")) //null
function longestPalindrome(str){
var arr = str.split("");
var endArr = [];
for(var i = 0; i < arr.length; i++){
var temp = "";
temp = arr[i];
for(var j = i + 1; j < arr.length; j++){
temp += arr[j];
if(temp.length > 2 && temp === temp.split("").reverse().join("")){
endArr.push(temp);
}
}
}
var count = 0;
var longestPalindrome = "";
for(var i = 0; i < endArr.length; i++){
if(count >= endArr[i].length){
longestPalindrome = endArr[i-1];
}
else{
count = endArr[i].length;
}
}
return longestPalindrome;
}