京东前端编程题讨论
第一题:AC,比较简单,不过我写的比较复杂。。。。。
let s=readline().split("");
let count=0;
if(s.length<1||s.length>50) console.log(count);
for(let i=0;i<s.length-1;i++){
if(s[i]!=s[i+1]){
count++;
if(i+1==s.length-1){
count++;
}
}
if(s[i]==s[i+1]){
if(i>0){
if(s[i]!=s[i-1]){
count++;
}
}
}
}
print(count);
第二题:30%,虽然已经用到动态规划了,不过后面相乘的时候,忘记大数相乘怎么写了。
let n=readline();
n=parseInt(n);
let dp=[];
dp[0]=1;
for(let i=1;i<n;i++){
let num=i+1;
for(let j=1;j<=i;j++){
if(num%j==0){
num=num/j;
}
dp[i]=num;
}
}
let min=1;
dp.forEach(i=>min=min*i%987654321);
print(min);
第三题:20%,这道题是真的难,比较,不会做,跪求大神教。
只做了一种情况:去掉一个字母
let s=readline().split("");
let count=0;
count+=s.length;
if(isHuiWen(s)&&s.length!=1) {
count++;
}
for(let i=s.length-1;i>=0;i=i-1){
let char=s.splice(i,1)[0];
if(isHuiWen(s)&&s.length!=1) {
count++;
}
s.splice(i,1,char);
}
print(count);
function isHuiWen(str){
if(!str.length) return false;
let i=0,j=str.length-1,flag=true;
while(i<j){
if(str[i]!=str[j])
flag=false;
i++;
j--
}
return flag;
}

查看22道真题和解析