您的位置:首页 > 职场人生

字符串(代码面试指南)

2017-08-26 14:40 232 查看
1、字符串中数字子串求和

【题目】

  给定一个字符串str,求其中全部数字串所代表的数字之和。

【要求】

  1、忽略小数点字符,例如"A1.3",其中包含两个数字1和3。

  2、如果紧贴数字子串的左侧出现字符'-',当连续出现的数量为奇数时,则数字为负数,连续出现的数量为偶数时,则数字为正数。例如,"A-1BC--12",其中包含数字是-1和12。

【举例】

  str="",返回36;

  str="a-1b--2c--d6e",返回7;

//这个题主要考察对不同情况的合适处理。返回数字求和
class A{
public:
int numSum(string str){
if(str==null) return 0;
int sum=0;
int num=0;
bool isPos=true;
int cur=0;
for(int i=0;i<str.size();i++)
{
cur=str[i]-'0';
if(cur<0||cur>9)//如果不是数字
{
sum+=num;//把之前的数累加
num=0;//置零
if(str[i]=='-')
{
if(i-1>-1&&str[i-1]=='-')
{
pos=!=pos;
}
else
{
pos=false;
}
}
else
pos=true;
}
else{
num=num*10+pos?cur:-cur;
}
}
sum+=num;
return sum;
}

};

2 去掉字符串中连续出现k个0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: