题解 | #在字符串中找出连续最长的数字串#

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

https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string s;
    vector<string> result;
    while(cin >> s){//多组输入
        result.clear();//每次输入都清空
        int maxlen=0;//记录最长数字串的长度
        for(int i=0;i<s.size();++i){//利用for循环跳过字母
            if(s[i]<='9'&&s[i]>='0'){
                int j=i;//双指针,找数字串的结尾
                while(j<s.size()&&s[j]<='9'&&s[j]>='0'){
                    ++j;
                }
                if(j-i>maxlen){//若更长,则清空结果数组
                    result.clear();
                    result.push_back(s.substr(i,j-i));
                    maxlen=j-i;
                }
                else if(j-i==maxlen){//一样长,则压入数据
                    result.push_back(s.substr(i,j-i));
                }
                i=j;
            }
        }
        for(int i=0;i<result.size();++i)
            cout << result[i];
        cout << ',' << maxlen << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务