一、题目
https://www.nowcoder.com/practice/8fecd3f8ba334add803bf2a06af1b993?tpId=13&tqId=11185&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例
输入
+2147483647
1a33
输出
2147483647
0
二、解题思路
三、代码
class Solution {
public:
int getTranslationCount(string s) {
int n = s.size();
vector<int>f( n + 1 );
f[0] = 1;
for(int i = 1 ; i <= n ; i++ ){
f[i] = f[ i - 1 ]; //第i为翻译为单独一个字母
int temp = ( s[ i - 2 ] - '0') *10 + s[i-1]-'0';
if(temp >= 10 && temp <= 25 ) f[i] += f[ i - 2 ];//第 i-1 i 若在10--25中 ,将其为翻译为单独一个字母
}
return f[n];
}
};