Comprobar si una string es Colindrome

Dada una string, comprueba si es Colindrome o no. Se dice que una string es colindrómica si tiene 3 alfabetos consecutivos seguidos por el reverso de estos 3 alfabetos y así sucesivamente. Ejemplos:

Input : cappaccappac
Output : String is colindrome

Input : mollomaappaa 
Output : String is Colindrome

Enfoque: tome dos strings vacías s1 y s2, y comience a iterar sobre la string dada. Tome las primeras tres letras de la string y guárdelas en s1, los siguientes tres caracteres en s2 y luego haga coincidir s1 y s2. Si son iguales, vuelva a hacer lo mismo hasta que la longitud de la string dada de lo contrario devuelva falso. 

C++

// CPP program to check if a
// string is Colindrome or not
#include<bits/stdc++.h>
using namespace std;
 
// Function to check if a string
// is Colindrome or not
bool colindrome(string s)
{
    int i1 = 0;
     
    for (int i = 0; i < s.length(); i++) {
     
        int i2 = i1 + 3;
     
        // Taking two empty Strings
        string s1 = "";
        string s2 = "";
     
        int c1 = 0, c2 = 0;
     
        // Iterate upto 3 letters
        for (i1 = i1; i1 < s.length(); i1++) {
            c1++;
 
            // concat each word with taken String
            s1 = s1 + s[i1];
            if (c1 == 3) {
                break;
            }
        }
 
        // Iterate upto 3 letters
        for (i2 = i2; i2 < s.length(); i2++) {
            c2++;
 
            // concat each word with taken String
            s2 = s2 + s[i2];
            if (c2 == 3) {
                break;
            }
        }
 
        // Reverse the second String
        string s3 = "";
        for (int k = s2.length() - 1; k >= 0; k--) {
            s3 = s3 + s2[k];
        }
 
        // Checks equality of two strings
        if (s1 != s3) {
            // If the two Strings are not same
            // then return false
            return false;
        }
 
        // Increment first variable by 6 and
        // second variable by 3
        i1 = i1 + 6;
        i2 = i2 + 3;
    }
     
    return true;
}
 
// Driver Code
int main()
{  
    // Input string
    string s = "cbbbbc";
     
    if(colindrome(s))
        cout<<"String is colindrome\n";
    else
        cout<<"Not colindrome";
         
    return 0;
}

Java

// Java code to check if a given string is Colindrome.
public class Colindrome {
 
    // Function to check Colindrome
    static boolean colindrome(String s)
    {
        int i1 = 0;
        for (int i = 0; i < s.length(); i++) {
            int i2 = i1 + 3;
 
            // Taking two empty Strings
            String s1 = "";
            String s2 = "";
            int c1 = 0, c2 = 0;
 
            // Iterate upto 3 letters
            for (i1 = i1; i1 < s.length(); i1++) {
                c1++;
 
                // concat each word with taken String
                s1 = s1 + s.charAt(i1);
                if (c1 == 3) {
                    break;
                }
            }
 
            // Iterate upto 3 letters
            for (i2 = i2; i2 < s.length(); i2++) {
                c2++;
 
                // concat each word with taken String
                s2 = s2 + s.charAt(i2);
                if (c2 == 3) {
                    break;
                }
            }
 
            // Reverse the second String
            String s3 = "";
            for (int k = s2.length() - 1; k >= 0; k--) {
                s3 = s3 + s2.charAt(k);
            }
 
            // Checks equality of two strings
            if (s1.equals(s3) != true) {
                // If the two Strings are not same then return false
                return false;
            }
 
            // Increment first variable by 6 and second variable by 3
            i1 = i1 + 6;
            i2 = i2 + 3;
        }
        return true;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String s = "cbbbbc";
        boolean b = colindrome(s);
        if (b) {
            System.out.println("String is colindrome");
        }
        else {
            System.out.println("Not Colindrome");
        }
    }
}

Python3

# python program to check if a
# string is Colindrome or not
 
# Function to check if a string
# is Colindrome or not
def colindrome(s):
    i1 = 0
    for i in range (0, len(s)):
        i2 = i1 + 3
 
        # Taking two empty Strings
        s1 = ""
        s2 = ""
     
        c1 = 0; c2 = 0;
     
        # Iterate upto 3 letters
        while(i1 < len(s)):
            c1 += 1
 
            # concat each word with taken String
            s1 = s1 + s[i1]
            if (c1 == 3) : break
            i1 += 1
 
        # Iterate upto 3 letters
        while(i2 < len(s)):
            c2 += 1
 
            # concat each word with taken String
            s2 = s2 + s[i2]
            if (c2 == 3) : break
            i2 += 1
 
        # Reverse the second String
        s3 = ""
        for k in range(len(s2)-1, -1, -1) :
            s3 = s3 + s2[k]
 
        # Checks equality of two strings
        if (s1 != s3) :
            # If the two Strings are not same
            # then return false
            return False
 
        # Increment first variable by 6 and
        # second variable by 3
        i1 = i1 + 6
        i2 = i2 + 3
 
    return True
 
# Driver Code
if __name__ == '__main__' :
 
    # Input string
    s = "cbbbbc";
     
    if(colindrome(s)) :
        print("String is colindrome")
    else :
        print("Not colindrome")
 
# contributed by Abhishek Sharma DTU.

C#

// C# code to check if a given string is Colindrome.
using System;
 
public class Colindrome
{
 
    // Function to check Colindrome
    static bool colindrome(String s)
    {
        int i1 = 0;
        for (int i = 0; i < s.Length; i++)
        {
            int i2 = i1 + 3;
 
            // Taking two empty Strings
            String s1 = "";
            String s2 = "";
            int c1 = 0, c2 = 0;
 
            // Iterate upto 3 letters
            for (i1 = i1; i1 < s.Length; i1++)
            {
                c1++;
 
                // concat each word with taken String
                s1 = s1 + s[i1];
                if (c1 == 3)
                {
                    break;
                }
            }
 
            // Iterate upto 3 letters
            for (i2 = i2; i2 < s.Length; i2++)
            {
                c2++;
 
                // concat each word with taken String
                s2 = s2 + s[i2];
                if (c2 == 3)
                {
                    break;
                }
            }
 
            // Reverse the second String
            String s3 = "";
            for (int k = s2.Length - 1; k >= 0; k--)
            {
                s3 = s3 + s2[k];
            }
 
            // Checks equality of two strings
            if (s1.Equals(s3) != true)
            {
                // If the two Strings are not
                // same then return false
                return false;
            }
 
            // Increment first variable by 6 and
            // second variable by 3
            i1 = i1 + 6;
            i2 = i2 + 3;
        }
        return true;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        String s = "cbbbbc";
        bool b = colindrome(s);
        if (b)
        {
            Console.WriteLine("String is colindrome");
        }
        else
        {
            Console.WriteLine("Not Colindrome");
        }
    }
}
 
// This code is contributed by PrinciRaj1992
Producción:

String is colindrome

Publicación traducida automáticamente

Artículo escrito por Bishal Kumar Dubey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *