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 Combinationchar 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 Codeint 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 Combinationdef 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 Codeif __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 Combinationfunction 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 Combinationfunction 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 Codelet 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!
