关闭

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

标签: C++STL
176人阅读 评论(0) 收藏 举报
分类:

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

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;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:107010次
    • 积分:3849
    • 等级:
    • 排名:第9159名
    • 原创:290篇
    • 转载:4篇
    • 译文:0篇
    • 评论:3条
    博客专栏
    最新评论