判斷添加一個字符後字符串是否爲迴文串

添加等價於刪除

即判斷刪除一個字符後是否爲迴文串即可

題目:https://ac.nowcoder.com/acm/contest/330/I

 

#include<bits/stdc++.h>
#define ll long long
#define MOD 1e9+7
#define N 1000010
using namespace std;
char a[N],b[N];

int check(const string &s){
	int n=s.length();
	for(int i=0;i<n;i++)
	 if(s[i]!=s[n-i-1])
	   return i;
	return -1;
}
int main(){
	string s;
	cin>>s;
	int diff=check(s);
	if(diff==-1)
	 cout<<"Yes";
	else{
		string temp=s;
		string s1=s.erase(diff,1);//從diff位置開始刪除一個字符 
		string s2=temp.erase(temp.length()-1-diff,1);//s相對與diffd的位置 
		if(check(s1)==-1||check(s2)==-1)
		  cout<<"Yes";
		else
		  cout<<"No";
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章