美文网首页
Java日记2018-05-15

Java日记2018-05-15

作者: hayes0420 | 来源:发表于2018-05-15 07:28 被阅读0次

第一题 把数字翻译成字符串

image.png

以12258为例分析,f(i)代表能翻译的字符串个数,i是字符串的位置,f(0)代表在1这个位置的字符串个数,向右递归,f(1)就代表在2这个位置的字符串个数,当然f(2)在第索引2也是2的位置。因为最大字母翻译是26,这样代表翻译时最多可以两位翻译,比如12这个数字,既可以以1,2来翻译,也可以以12来翻译。这样f(0)位置的字符串翻译个数其实是f(0)=f(1)+f(2),前面也提到走两步时候是否成立应该以在0,以及1这个位置的数字来判断,如果索引0,1位置大于25那么f(2)其实就不存在。推而广之f(n)=f(n+1)+g(n,n+1)*f(n+2),g(n,n+1)代表索引n,n+1位置的数字是否大于25。于是就可以有以下算法


public class TranslateNumbersToStrings {
    public static int trans(int num){
        if(num<0) return 0;
        if(num<10) return 1;
        return transcore(Integer.toString(num));
    }
    
    public static int transcore(String num) {
        int f1=0;
        int f2=1;
        int temp=0;
        int g=0;
        System.out.println("begin");
        for(int i=num.length()-2;i>=0;i--) {
            if(Integer.parseInt(num.charAt(i)+""+num.charAt(i+1))>25) {
                g=0;
            } else {
                g=1;
            }
            temp = f2;
            f2= f2+g*f1;
            f1 = temp;
        }
        return f2;
    }
    
    public static void main(String[] args) {
        System.out.println(trans(12258));
    }

}

相关文章

  • 随想——源于公园、校园、家园

    葱兰朵朵 2018-05-15 17:21 · 字数 1538 · 阅读 1 · 日记本 邀...

  • 2018-05-15

    网海情缘 郝代弟 2018-05-15 17:23 · 字数 1408 · 阅读 0 · 日记本 冥冥之中有...

  • Java日记2018-05-15

    第一题 把数字翻译成字符串 以12258为例分析,f(i)代表能翻译的字符串个数,i是字符串的位置,f(0)代表在...

  • 王霞感恩功课第162

    王霞感恩功课第162天 王霞王夏 2018-05-15 23:26 · 字数 6217 · 阅读 29 · 日记本...

  • 2018-05-15

    2018-05-15· 字数 507· 阅读 75· 日记本 姓名:周富强 公司:厦门大科机械有限公司 日精进打卡...

  • 第23天感恩日记 李大伟2018-05-15

    第23天感恩日记 李大伟2018-05-15 1、感恩今天父母过来住了,他们还是不肯到大床睡,我让了半天也没用...

  • 12306

    train.py 最后更新时间:2018-05-15 0:15:23

  • java基础-2018-05-15

    为什么HashMap是线程不安全的 1、resize死循环: JAVA8之前会产生死循环,但8之后不会,数据会不一...

  • http理解(中)

    title: http 理解(中)date: 2018-05-15 14:53:22tags: http 确保We...

  • 2017-12-30

    JAVA学习日记(8) 多态!!很重要

网友评论

      本文标题:Java日记2018-05-15

      本文链接:https://www.haomeiwen.com/subject/kunsdftx.html