c++实现“统计输入的string中重复次数最多的string”

来源:互联网 发布:python 3.6中文教程 编辑:程序博客网 时间:2024/04/30 12:34
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <vector>
#include <cmath>
#include <bitset>
#include <algorithm>
#include <cstddef>
#include <iomanip>


int main(int argc, char * argv[])
{
  
std::string input("");
std::cout<<"input some strings:"<<std::endl;
std::getline(std::cin,input);
int cnt(1);
for(std::string::size_type i=0;i<input.size()-1;++i)
{
if((::isalnum(input[i])||::ispunct(input[i]))&&(!::isalnum(input[i+1])&&(!::ispunct(input[i+1]))))
++cnt;
}
std::stringstream ss;
std::string * sptr=new  std::string[cnt];
ss<<input;
std::string temp;
int sentinel(0);
while(ss>>temp)
{
sptr[sentinel++]=temp;


}
size_t position(0),occur_time(1);
for(size_t i=0,j=1;i<cnt-1;)
{
while((i!=cnt-1)&&(sptr[i]==sptr[i+1]))
{
++i;
++j;
}
if(j>occur_time)
{
std::cout<<"目前重复最多字符串是:"<<sptr[position]<<"\t重复次数:"<<occur_time<<std::endl;
position=i-j+1;
occur_time=j;
}
++i;
j=1;
}
std::cout<<"最终重复最多字符串是:"<<sptr[position]<<"\t重复次数:"<<occur_time<<std::endl;


int temp111;
std::cin>>temp111;
return 0;

}


原创粉丝点击