我的问题是在编写了下面的代码后得到了激励,该代码在poj上通过问题Alphacode的测试,一旦有人使用atoi而不是atof.
#include <iostream>#include <algorithm>#include <map>#include <vector>#include <string>using namespace std;map<string,int> cache;bool valID_character_number(string a) { return 0 < stoi(a.substr(a.size() - 2,2)) && stoi(a.substr(a.size() - 2,2)) <= 26;}bool zero_last_digit(string a) { return a[a.size() - 1] == '0';}bool zero_before_last_digit(string a) { return a[a.size() - 2] == '0';}int deCodings(string a) { if (a.size() == 0) return 1; if (a.size() == 1) { if (zero_last_digit(a)) return 0; else return 1; } if (cache.find(a) != cache.end()) return cache[a]; if (zero_last_digit(a) && valID_character_number(a)) return cache[a] = deCodings(a.substr(0,a.size() - 2)); else if (valID_character_number(a) && !zero_before_last_digit(a)) return cache[a] = deCodings(a.substr(0,a.size() - 1)) + deCodings(a.substr(0,a.size() - 2)); else return cache[a] = deCodings(a.substr(0,a.size() - 1));}int main() { string input; while (true) { cin >> input; if (input.size() == 1 && stoi(input) == 0) return 0; cout << deCodings(input) << endl; } return 0;}解决方法 你不能为此目的使用std :: string,但你可以很容易地创建一个自己的类,它将一对迭代器(开始和结束)保存到另一个字符串,或者C样式的char *和大小.使用C 11(因为您标记了它),您甚至应该能够创建用户定义的文字语法来创建新类型的字符串. 总结
以上是内存溢出为你收集整理的c – 如何通过引用传递子字符串?全部内容,希望文章能够帮你解决c – 如何通过引用传递子字符串?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)