本章主要学习如何透过演算法学习训练思考
Palindrome BigO(n)
检查是否reverse也是相同的
EX: anna = anna
function Palindrome(str){ let left = 0 let right = str.length -1 while(left <= right){ if(str[left] === str[right]){ left++ right-- }else{ return false } }return true}console.log(Palindrome('hcco')) //false
Subsequence
检查是否为子序列
function subsequence(str1, str2){ //str1为原始序列, str2为子序列 if(str1.length == 0 ){ return true } let pointer1 = 0 //设置两个指标,逐一比对 let pointer2 = 0 while(str2.length > pointer2){ if(str1[pointer1] == str2[pointer2]){ //若str1 == str2 str1[pointer] ++ 继续比对 pointer1++ } if(pointer1 >= str1.length){ return true //如果pointer已经 == str1长度 代表都符合 即回传true } pointer2++ //每次执行都要比对str2[pointer] 所以++ }return false ///若都不符合即回传false}console.log(subsequence("hello", "hssello")) //trueconsole.log(subsequence("hello", "ehllo")) //false