June
1st,
2017
https://www.freecodecamp.cn/challenges/missing-letters
从传递进来的字母序列中找到缺失的字母并返回它。
如果所有字母都在序列中,返回 undefined。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
解法一:
function fearNotLetter(str) {
var arr = str.split("");
var temp = [];
var start = str.charCodeAt(0);
var end = str.charAt(str.length - 1).charCodeAt(0);
for(var i = start; i < end + 1; i++){
var item = String.fromCharCode(i);
if(arr[0] !== item){
temp.push(item);
}else{
arr.shift();
}
}
if(temp.length === 0){
return undefined;
}else{
return temp.join("");
}
}
fearNotLetter("abce");
解法二:
function fearNotLetter(str) {
for(var i=0,len=str.length;i<len;i++){
var cha = str.charCodeAt(i+1)-str.charCodeAt(i);
if(cha>1){
return String.fromCharCode(str.charCodeAt(i)+1);
}
}
return undefined;
}
fearNotLetter("abce");
解法三:
function fearNotLetter(str) {
var first = str.charCodeAt(0); //把第一个字母的Unicode值单独保存
for (var i = 0; i < str.length;i++) { //遍历str字符串
if(str.indexOf(String.fromCharCode(first + i)) < 0){ //从first开始一个个对str字符串查找,如果找到缺少的那一个,即 <0,则返回该值。
return String.fromCharCode(first + i);
}
}
return undefined; //如果没有发现缺值,则返回undefined。
}
fearNotLetter("abce");