华为OJ—— 在字符串中找出连续最长的数字串

    xiaoxiao2025-05-03  6

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

    题目描述

    样例输出

    输出123058789,函数返回值9

    输出54761,函数返回值5

    接口说明

    函数原型:

       unsignedint Continumax(char** pOutputstr,  char* intputstr)

    输入参数:    char* intputstr  输入字符串;

    输出参数:    char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串;  

    返回值: 连续最长的数字串的长度

    输入描述:

    输入一个字符串。

    输出描述:

    输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度

    输入例子:

    abcd12345ed125ss123058789

    输出例子:

    123058789,9

    解答代码:

    #include<iostream> #include<fstream> #include<string> #include<cstring> #include<algorithm> #include<sstream> using namespace std; int main() { char s[1024]; while(cin.getline(s,1024)) { string temp=""; string resu=""; int i,max=0,cou=0; int flagLength=0; int length=strlen(s); for(i=0; i<length; i++) { if(s[i] >= '0' && s[i] <= '9') { cou++; temp+=s[i]; } else { if(cou>max) { resu=temp; max=cou; temp=""; cou=0; continue; } else if(max==cou) { resu+=temp; } temp=""; cou=0; } } if(i==length) { if(cou>max) { resu=temp; temp=""; max=cou; cou=0; } else if(cou==max) resu+=temp; } cout<<resu<<','<<max<<endl; } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1298714.html
    最新回复(0)