Given a String of three Colours(G, B, Y) as input, the task is to print the resultant combined color 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 BInput: str = “BYB”
Output Y
Approach: This problem can be solved as follows:
- Get the input string.
- Compare each alphabet with its adjacent characters.
- Use the above condition to determine the combination.
- print the output combination.
Below is the implementation of the above approach:
C++
// 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); } |
Java
// 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 |
Python3
# 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 |
C#
// 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 |
PHP
<?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 ?> |
Javascript
<script> // Javascript program to find the // resultant colour combination // Function to return Colour Combination function Colour_Combination(s) { let temp = s[0]; for (let 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 let s = "GBYGB" ; document.write(Colour_Combination(s)); // This code is contributed by Surbhi Tyagi. </script> |
B
Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!