大致是1代表A,2代表B等等,26代表Z,给定一个数,请问转换成字符串后有几种转换结果:
ep:
input:112
分析:AAB KB AL
output:3

分析:把输入数字分为多个斐波那契段即可

pubilc:int solution(char *s){
    if(!*s++){
        return 1;
    }
    int sum = 1;
    int cur = 1;
    vector<int> fibLen;
    while(*s){
        int val = (*s-'0')*10+(*(S-1)-'0');
        if(val>26){
            fibLen.push_back(cur);
            cur = 1;
        }
        else{
            cur++;
        }
        s++;
    }
    for(int i=0;i<fibLen.siez();i++){
        sum *= Fib(fibLen);
    }    
    return sum;
}
private: int Fib(int n){
    if(n==0) return 0;
    if(n==1) return 1;
    return Fib(n-1)+Fib(n-2);
}

相关文章:

猜你喜欢
  • 2021-11-12
  • 2022-12-23
  • 2021-07-02
  • 2021-04-18
相关资源
相似解决方案