Find the resulting Colour Combination

Given a String of three Colours(G, B, Y) as input, the task is to print the resultant combined colour formed according to the rule given below:

// Rules for colour combination

Blue(B) * Green(G) = Yellow(Y)
Yellow(Y) * Blue(B) = Green(G)
Green(G) * Yellow(Y) = Blue(B)

Examples:

Input: str = "GBYGB"
Output B

Input: str = "BYB"
Output Y

Approach: This problem can be solved as follows:



  1. Get the input string.
  2. Compare each alphabet with its adjacent characters.
  3. Use the above condition to determine the combination.
  4. print the output combination.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to find the
// resultant colour combination
  
#include <iostream>
using namespace std;
  
// Function to return Colour Combination
char Colour_Combination(string s)
{
    char temp = s[0];
  
    for (int i = 1; i < s.length(); i++) {
        if (temp != s[i]) {
  
            // Check for B * G = Y
            if ((temp == 'B' || temp == 'G')
                && (s[i] == 'G' || s[i] == 'B'))
                temp = 'Y';
  
            // Check for B * Y = G
            else if ((temp == 'B' || temp == 'Y')
                     && (s[i] == 'Y' || s[i] == 'B'))
                temp = 'G';
  
            // Check for Y * G = B
            else
                temp = 'B';
        }
    }
    return temp;
}
  
// Driver Code
int main(int argc, char** argv)
{
    string s = "GBYGB";
  
    cout << Colour_Combination(s);
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find the 
// resultant colour combination 
class GfG
{
  
    // Function to return Colour Combination 
    static char Colour_Combination(String s) 
    
        char temp = s.charAt(0); 
      
        for (int i = 1; i < s.length(); i++)
        
            if (temp != s.charAt(i)) 
            
      
                // Check for B * G = Y 
                if ((temp == 'B' || temp == 'G'
                            && (s.charAt(i) == 'G'
                            || s.charAt(i) == 'B')) 
                    temp = 'Y'
      
                // Check for B * Y = G 
                else if ((temp == 'B' || temp == 'Y'
                                && (s.charAt(i) == 'Y'
                                || s.charAt(i) == 'B')) 
                    temp = 'G'
      
                // Check for Y * G = B 
                else
                    temp = 'B'
            
        }
        return temp; 
    
  
    // Driver code
    public static void main(String []args)
    {
        String s = "GBYGB"
        System.out.println(Colour_Combination(s));
    }
}
  
// This code is contributed by Rituraj Jain

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to find the
# resultant colour combination
  
# Function to return Colour Combination
def Colour_Combination(s):
    temp = s[0]
  
    for i in range(1, len(s), 1):
        if (temp != s[i]):
              
            # Check for B * G = Y
            if ((temp == 'B' or temp == 'G') and 
                (s[i] == 'G' or s[i] == 'B')):
                temp = 'Y'
  
            # Check for B * Y = G
            elif ((temp == 'B' or temp == 'Y') and 
                  (s[i] == 'Y' or s[i] == 'B')):
                temp = 'G'
  
            # Check for Y * G = B
            else:
                temp = 'B'
    return temp
  
# Driver Code
if __name__ == '__main__':
    s = "GBYGB"
  
    print(Colour_Combination(s))
  
# This code is contributed by
# Surendra_Gangwar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find the 
// resultant colour combination 
      
using System;
  
class GFG
{
      
    // Function to return Colour Combination 
    static char Colour_Combination(string s) 
    
        char temp = s[0]; 
      
        for (int i = 1; i < s.Length; i++) 
        
            if (temp != s[i]) 
            
      
                // Check for B * G = Y 
                if ((temp == 'B' || temp == 'G'
                    && (s[i] == 'G' || s[i] == 'B')) 
                    temp = 'Y'
      
                // Check for B * Y = G 
                else if ((temp == 'B' || temp == 'Y'
                        && (s[i] == 'Y' || s[i] == 'B')) 
                    temp = 'G'
      
                // Check for Y * G = B 
                else
                    temp = 'B'
            
        
        return temp; 
    
      
    // Driver Code 
    static void Main() 
    
        string s = "GBYGB"
      
        Console.WriteLine(Colour_Combination(s)); 
    }
}
  
// This code is contributed by Ryuga

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find the
// resultant colour combination
  
// Function to return Colour Combination
function Colour_Combination($s)
{
    $temp = $s[0];
  
    for ($i = 1; $i < strlen($s); $i++) 
    {
        if ($temp != $s[$i]) 
        {
  
            // Check for B * G = Y
            if (($temp == 'B' || $temp == 'G') && 
                ($s[$i] == 'G' || $s[$i] == 'B'))
                $temp = 'Y';
  
            // Check for B * Y = G
            else if (($temp == 'B' || $temp == 'Y') &&
                     ($s[$i] == 'Y' || $s[$i] == 'B'))
                $temp = 'G';
  
            // Check for Y * G = B
            else
                $temp = 'B';
        }
    }
    return $temp;
}
  
// Driver Code
$s = "GBYGB";
  
echo Colour_Combination($s);
  
// This code is contributed by ita_c
?>

chevron_right


Output:

B


My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.