1. 程式人生 > >牛客網第十三天的訓練

牛客網第十三天的訓練

基礎題:翻轉字串

class ReverseEqual {
public:
    bool checkReverseEqual(string s1, string s2) {
        // write code here
        if(s1.length()!=s2.length()) return false;
		s1=s1+s1;
		if(s1.find(s2)!=std:: npos) return true;
		else return false;
    }
};

進階題:連續整數

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 55;
int a[maxn];
int main()
{
	int n,ans;
	while(cin>>n)
	{
		int flag=0;
		for(int i=0;i<n;++i) 
		{
			cin>>a[i];
		}
		sort(a,a+n);
		for(int i=1;i<n;++i)
		{
			if(a[i]-a[i-1]==1)
			{
				continue;	
			} 
			else if(a[i]-a[i-1]==2)
			{
				if(flag==2)
				{
					flag=1;
					break;
				}
				ans=a[i]-1;
				flag=2;
			}
			else
			{
				flag=1; 
				break;
			} 
		}
		
		if(flag==1)
		{
			cout<<"mistake"<<endl;
		}else if(flag==2)
		{
			cout<<ans<<endl;
		}else
		{
			if(a[0]==1)
			{
	 			cout<<a[n-1]+1<<endl;			
			}
			else if(a[n-1]==1000000000)
			{
				cout<<a[0]-1<<endl;
			}
			else 
			{
				cout<<a[0]-1<<" "<<a[n-1]+1<<endl;	
			}
		}
	} 
	return 0;
}