北京理工大学2018年考研复试上机试题

在这里插入图片描述

#include<iostream>
#include<map>
#include<string>
#include<ctype.h>
using namespace std;
int main()
{
	string str;
	cout<<"请输入一个字符串:"<<endl;
	while(cin>>str)
	{
		map<int,int>my;
		for(int i=0;i<str.length();i++)
		if('A'<=str[i]&&str[i]<='Z')
		{
			str[i]=tolower(str[i]);
			my[i]=1;
		}
		int num=0,maxc=0;
		for(int n=2;n<str.length()+1;n++)
		{
			int count=0;
		    for(int i=0;i<str.length()-n+1;i++)
		    {
			    string s=str.substr(i,n);
			    bool flag=true;
			    for(int j=0;j<s.length()/2;j++)
			    if(s[j]!=s[s.length() -1-j])
			    {
				    flag=false;
				    break;
			    }
			    if(flag)
			    count++;
			}
		    if(count>0)
		    {
		    	num=n;
		    	maxc=count;
			}
	   }
	   cout<<num<<" "<<maxc<<endl; 
	}
}

在这里插入图片描述
在这里插入图片描述

夏令营

在这里插入图片描述

#include<iostream>
#include<vector>
#include<map>
#include<cmath>
using namespace std;
int main()
{
	string str;
	cout<<"请输入任意个整数:"<<endl;
	while(getline(cin,str))
	{
		if(str=="0000")
		break;
		map<int,int>my;
		int st=0,end=0,num,max=-1,flag;
		string s;
		for(int i=0;i<str.length();i++)
		{
			if(str[i]==',')
			{
				num=0;
				end=i;
				s=str.substr(st,end-st);
				for(int j=0;j<s.length();j++)
				num+=(s[j]-'0')*pow(10,s.length()-1-j);
				my[num]++;
			//	cout<<num<<" "<<my[num]<<endl;
				if(my[num]>=max)
				{
					max=my[num];
					flag=num;
				}
				st=i+1;
			}
		}
		s=str.substr(st,str.length()-st);
		num=0;
		for(int j=0;j<s.length();j++)
		num+=(s[j]-'0')*pow(10,s.length()-1-j);
		my[num]++;
	//	cout<<num<<" "<<my[num]<<endl;
		if(my[num]>=max)
		{
			max=my[num];
			flag=num;
		}
		if(max==1)
	    cout<<"-1"<<endl;
		else
		cout<<flag<<endl;
		cout<<"请输入任意个整数:"<<endl;
	}
	return 0;
}

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str;
	cout<<"请输入一个字符串:"<<endl;
	while(cin>>str)
	{
		if(str=="0000")
		break; 
		string str1,str2,temp;
		int count=0;
		for(int i=1;i<=str.length();i++)
		{
			str1=str.substr(0,i);
			str2=str.substr(i,str.length()-i);
			temp=str2+str1;
			if(str==temp)
			count++;
		}
		cout<<count<<endl;
		cout<<"请输入一个字符串,0000为程序结束标志"<<endl;
	}
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值