标签:class amp str 返回 int pos ++ 否则 turn
字符串处理的问题,有几个点要注意。
string 里的 find(), find_first_of(), find_first_not_of() 如果没找到,返回string::nops,值为-1。做题可以直接 int pos=str.find() ...
int 32位,范围是-2^31~2^31-1。 负数用补码形式保存,补码=反码+1。本题每次加上新的位时要判断是否越界,否则正数会加成负数。
class Solution { public: int myAtoi(string str) { int i=str.find_first_not_of(‘ ‘); int indicator=1; if (i<str.size() && (str[i]==‘-‘||str[i]==‘+‘)){ if (str[i++]==‘-‘) indicator=-1; } long long num=0; while (i<str.size() && isdigit(str[i])){ num = 10*num+(str[i++]-‘0‘); if (indicator*num>=INT_MAX) return INT_MAX; if (indicator*num<=INT_MIN) return INT_MIN; } return indicator*num; } };
标签:class amp str 返回 int pos ++ 否则 turn
原文地址:https://www.cnblogs.com/hankunyan/p/9155608.html