split-four-distinct-strings

Check if the given input string can split into 4 strings such that each string is non-empty and different from each other.

Examples

a) Input string : “tutorials-cup”
Output : Yes
Here, split string into tut, oril, s-c, up

b) Input string: “aabab”
Output : No

Algorithm

1. If length of string is greater than or equal to 10, return true. Here, if length is equal to 10, strings with lengths 1, 2, 3, 4 can be formed which are distinct. So, return true.

2. Else run brute force technique to find four sub-strings that are different and can form given input string.

C++ Program

#include <bits/stdc++.h>

using namespace std;

bool CheckSplit(string str)
{
    //If size is greatar than 10 return true  
    if (str.size() >= 10)
    {
        return true;
    }
    //Brute Force technique
    for (int i =1; i < str.size(); i++)
    {
        for (int j = i + 1; j < str.size(); j++)
        {
            for (int k = j + 1; k < str.size(); k++)
            {
                string sub1 = str.substr(0, i);
                string sub2 = str.substr(i, j - i);
                string sub3 = str.substr(j, k - j);
                string sub4 = str.substr(k, str.size() - k);
                //Check if sub-strings are distinct or not.
                if (sub1 != sub2 && sub1 != sub3 && sub1 != sub4 && sub2 != sub3 && sub2 != sub4 && sub3 != sub4)
                {
                    return true;
                }
            }
        }
    } 
    return false;
}
 
//Main function
int main()
{
    string str = "aabab";
    if (CheckSplit(str))
    {
        cout<<"Yes"<<endl;
    }
    else
    {
        cout<<"No"<<endl;   
    }
    return 0;
}
Try It

 


Next > < Prev
Scroll to Top