您的位置:首页 > Web前端 > JavaScript

Javascript递归实现生成A到ZZZ的字符串

2009-11-05 17:19 387 查看
写出来放这里,以后可以再次使用。

//Sequential from A to ZZZ based input
function Sequential(input){
var str = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
var initials = input ;
if(initials.length == 1){
if(initials != "Z"){
for(var i =0 ; i < str.length; ++i){
if(str[i] == initials){
initials = str[i + 1];
break;
}
}
}else{
initials = "AA";
}
}else if(initials.length == 2){
var firstChar = initials.charAt(0);
var lastChar = initials.charAt(1);
if(firstChar == 'Z' && lastChar == 'Z'){
initials = "AAA";
}else{
if(lastChar != 'Z'){
//increment the lastChar from A to Z
initials = firstChar + recomputeInitials(lastChar);
}else{
//increment the firstChar from A to Z
initials = recomputeInitials(initials.charAt(0)) + lastChar;
}
}
}else if(initials.length == 3){
var firstChar = initials.charAt(0);
var middleChar = initials.charAt(1);
var lastChar = initials.charAt(2);
if(firstChar == 'Z' && middleChar == 'Z' && lastChar == 'Z'){}
else{
if(lastChar != 'Z'){
initials = firstChar + middleChar + recomputeInitials(lastChar);
}else if(lastChar == 'Z' && middleChar != 'Z'){
initials = firstChar + recomputeInitials(middleChar) + lastChar;
}else if(lastChar == 'Z' && middleChar == 'Z' && firstChar != 'Z'){
initials = recomputeInitials(firstChar) +  middleChar + lastChar;
}
}
}else{
initials = initials.substring(0,3);//just return the first 3 chars
}
return initials;
}


如Sequential("DFS") => "DFT"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: