字符串(代码面试指南)

来源:互联网 发布:西宁网络电视台 编辑:程序博客网 时间:2024/06/06 17:55

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


原创粉丝点击