代码拉取完成,页面将自动刷新
链接:https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&tPage=3&rp=2&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
来源:牛客网
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647
1a33
输出例子:
2147483647
0
int globle_flag = 0;
class Solution {
public:
int StrToInt(string str) {
if(str.empty())
{
globle_flag = 1;
return 0;
}
int res = 0;
int base = 1;
for(int i = str.size() - 1; i > 0;i--)
{
if(str[i]>= '0' && str[i] <= '9')
{
res += ((str[i] -'0') * base);
if(res > INT_MAX) //溢出
{
globle_flag = 1;
return 0;
}
}
else
{
globle_flag = 1;
return 0;
}
base *= 10;
}
if(str[0] == '-') //判断第一位是什么符号
{
res = 0 - res;
if(res < (signed int)0x80000000)
{
globle_flag = 1;
return 0;
}
}
else if(str[0] >= '0' && str[0] <= '9')
{
res += ((str[0] - '0') * base);
if(res > INT_MAX) //溢出
{
globle_flag = 1;
return 0;
}
}
else if(str[0] == '+')
{
res = res;
}
else
{
globle_flag = 1;
return 0;
}
return res;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。