eCode代码加工厂

这里不搬运代码只提供对代码的深加工

在字符串中找出连续最长的数字串

赶时间随意写的,代码不优雅,先保存下来,以后有时间再改进

struct numStr{
    string s;
    int n;
};
bool cmp(numStr const &a, numStr const &b){
    return a.n > b.n;
}
void hwOJ(){
    vector<numStr> numstr;
    string str = "abcd12345ed125ss123058789s123456789012345";
    int len = str.length();
    numStr tmp;
    for (int i = 0; i < len; ++i){
        if (isdigit(str[i]))
        {       
            tmp.s.push_back(str[i]);
        }
        else if (!isdigit(str[i])){
            if (!tmp.s.empty()){
                tmp.n = tmp.s.length();
                numstr.push_back(tmp);
                tmp.s.clear();
                tmp.n = 0;
            }
        }
        if (i == len - 1 && isdigit(str[len - 1])){
            tmp.n = tmp.s.length();
            numstr.push_back(tmp);
            tmp.s.clear();
            tmp.n = 0;
        }
    }
    sort(numstr.begin(), numstr.end(), cmp);
    cout << numstr.at(0).s <<", "<<numstr.at(0).n;
    cout << endl;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_17313961/article/details/49923973
文章标签: C++ STL
个人分类: 华为OJ基础题
上一篇Android多点触控
下一篇华为OJ基础篇-合法IP
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭