Skip to content
Related Articles

Related Articles

Improve Article

Check if a string is Colindrome

  • Difficulty Level : Easy
  • Last Updated : 10 Feb, 2020

Given a string, check if it is Colindrome or not. A string is said to be colindrome if it has consecutive 3 alphabets followed by the reverse of these 3 alphabets and so on.

Examples :

Input : cappaccappac
Output : String is colindrome

Input : mollomaappaa 
Output : String is Colindrome

Approach : Take two empty strings s1 and s2, and start iterating over the given string. Take first three letters of the string and store it in s1, next three chars in s2 and then match s1 and s2. If they are same then do the same again till length of the given string else return false.

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 ccolindrome";
          
    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 ccolindrome")
  
# 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
Output:
String is colindrome

Attention reader! Don’t stop learning now. Join the First-Step-to-DSA Course for Class 9 to 12 students , specifically designed to introduce data structures and algorithms to the class 9 to 12 students




My Personal Notes arrow_drop_up
Recommended Articles
Page :