您的位置:首页 > 其它

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

2016-05-14 23:10 507 查看
题目如下:



答案(C++):


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

int main(){
string str;
getline(cin,str);
//每次统计的数字的个数
int maxCount=0;
//存储每个连续的字符串
vector<string> v;
for(int i=0;i<str.length();i++){
int count=0;
//找到有数字出现的地方
while(!isdigit(str[i])&&i<str.length()){
i++;
}
//找到连续数字字符串的开始位置
int begin=i;
while(isdigit(str[i])&&i<str.length()){
count++;
i++;
}
v.push_back(str.substr(begin,count));
i--;
if(count>maxCount){
maxCount=count;
}
}

//找到字符串最长的那个vector
string result="";
for(vector<string>::iterator it=v.begin();it!=v.end();it++){
if(((string)*it).length()>result.length()){
result=*it;
}
}
if(result!=""){
cout<<result<<","<<maxCount<<endl;
}
else{
cout<<"0"<<endl;
}
return 0;
}


注意点:

(1):输入空格,回车后的结果是"0".而不是" ,0"
(2):直接回车后的结果是"0".而不是" ,0"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: