Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- string s;
- string corte1,corte2;
- string resp1,resp2;
- bool palindromo(string a){
- int i=0, j=a.size()-1;
- while(i!=j){
- if(a[i] != a[j]) return false;
- i++;
- j--;
- if(i>j) return true;
- }
- return true;
- }
- bool palizq(string a){
- int i=1, j=a.size()-1;
- while(i!=j){
- if(a[i] != a[j]) return false;
- i++;
- j--;
- }
- return true;
- }
- bool palder(string a){
- int i=0, j=a.size()-2;
- while(i!=j){
- if(a[i] != a[j]) return false;
- i++;
- j--;
- }
- return true;
- }
- int main(){
- cin >> s;
- if(s.size() < 4){ cout <<"no se puede"; return 0; }
- vector<string> soluciones;
- for(int i=2; i<s.size()-1; i++){
- for(int j=0; j<i; j++) corte1.push_back(s[j]);
- for(int j=i; j<s.size(); j++) corte2.push_back(s[j]);
- bool disting1=false;
- bool disting2=false;
- bool pal1 = palindromo(corte1);
- bool pali1 = palizq(corte1);
- bool pald1 = palder(corte1);
- resp1 = corte1;
- if(pal1==true){
- resp1 = resp1 + " palindromo"; }
- if(corte1.size()>=3 && pali1==true){
- resp1 = resp1 + " i-palindromo"; }
- if(corte1.size()>=3 && pald1==true){
- resp1 = resp1 + " d-palindromo"; }
- bool pal2 = palindromo(corte2);
- bool pali2 = palizq(corte2);
- bool pald2 = palder(corte2);
- resp2 = corte2;
- if(pal2==true){
- resp2 = resp2 + " palindromo"; }
- if(corte2.size()>=3 && pali2==true){
- resp2 = resp2 + " i-palindromo"; }
- if(corte2.size()>=3 && pald2==true){
- resp2 = resp2 + " d-palindromo"; }
- if(pal1==true || pali1==true || pald1==true) disting1=true;
- if(pal2==true || pali2==true || pald2==true) disting2=true;
- if(disting1==true && disting2==true){
- soluciones.push_back(resp1);
- soluciones.push_back(resp2);
- }
- disting1=false;
- disting2=false;
- pal1=false;
- pali1=false;
- pald1=false;
- pal2=false;
- pali1=false;
- pald2=false;
- corte1.clear();
- corte2.clear();
- resp1.clear();
- resp2.clear();
- }
- if(soluciones.size()>0) for(auto i: soluciones) cout << i <<endl;
- else cout <<"no se puede";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement