46.把数字翻译成字符串
function GetTranslationCount(number){
if(number<0)
return 0;
var numberStr=number+"";
var len=numberStr.length;
var counts=[];
var count=0;
for(var i=len-1;i>=0;i--){
count=0;
if(i<len-1)
count=counts[i+1];
else
count=1;
if(i<len-1){
var digit1=numberStr.charAt(i)+"";
var digit2=numberStr.charAt(i+1)+"";
var converted=parseInt(digit1+digit2);
if(converted>=10&&converted<=25){
if(i<len-2)
count+=counts[i+2];
else
count+=1;
}
}
counts[i]=count;
console.log(counts);
}
count=counts[0];
return count;
}
console.log(GetTranslationCount(12258));
47.礼物的最大值
function getMaxValue(values,rows,cols){
if(values.length<=0||rows<=0||cols<=0)
return 0;
var maxValues=[];
for(var i=0;i<rows;i++){
for(var j=0;j<cols;j++){
var left=0;
var up=0;
if(i>0)
up=maxValues[j];
if(j>0)
left=maxValues[j-1];
maxValues[j]=Math.max(up,left)+values[i*cols+j];
}
}
var maxValue=maxValues[cols-1];
return maxValue;
}
var values=[1,10,3,8,12,2,9,6,5,7,4,11,3,7,16,5];
console.log(getMaxValue(values,4,4));
48.最长不重复字符串
function longestSubstringWithoutDuplication(str){
if(str.length<=0) return 0;
var curLen=0;
var maxLen=0;
var position=[];
for(var i=0;i<26;i++){
position[i]=-1;
}
for(var j=0;j<str.length;j++){
var preIndex=position[str.charCodeAt(j)-97];
if(preIndex<0||j-preIndex>curLen){
++curLen;
}else{
if(curLen>maxLen)
maxLen=curLen;
curLen=j-preIndex;
}
position[str.charCodeAt(j)-97]=j;
}
if(curLen>maxLen)
maxLen=curLen;
return maxLen;
}
console.log(longestSubstringWithoutDuplication("arabcacfr"))