52:把数字翻译成字符串

把数字翻译成字符串

给定一个数字,我们按照如下规则把它翻译为字符串,0翻译成"a",1翻译成"b",…11翻译成"l",25翻译成"z"。例如12258有5中不同的翻译,分别是""bccfi,“bwfi”,…

public class Offer52 {

    public int getTranslationCount(int number) {
        if(number<0)
            return 0;
        //转字符
        String sNumber=String.valueOf(number);
        int len=sNumber.length();
        int[] counts=new int[len];
        //从字符串的结尾开始遍历
        for(int i=len-1;i>=0;i--) {
            //
            if(i==len-1) {
                counts[i]=1;
            }else {
                counts[i]=counts[i+1];

                if(canBeTrans(sNumber,i)) {
                    if(i==len-2)
                        counts[i]+=1;
                    else
                        counts[i]+=counts[i+2];
                }
            }

        }
        return counts[0];
    }
    //判断是否能转化为字符
    private boolean canBeTrans(String sNumber, int i) {
        int a=sNumber.charAt(i)-'0';
        int b=sNumber.charAt(i+1)-'0';
        int convert=a*10+b;
        if(convert>=10 && convert<=25)
            return true;
        return false;
    }
    

}

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页