Cho chuỗi gồm 3 màu G, B, Y. Tìm màu kết hợp theo quy tắc:
- B * G = Y
- Y * B = G
- G * Y = B
Ví dụ "GBYGB" → B, "BYB" → Y.
Duyệt chuỗi, giữ màu hiện tại, so sánh với ký tự tiếp theo, áp dụng quy tắc kết hợp.
Ví dụ
#include <iostream>
using namespace std;
char combination(string s) {
char color = s[0];
for (int i = 1; i < s.length(); i++) {
if (color != s[i]) {
if ((color == 'B' || color == 'G') && (s[i] == 'G' || s[i] == 'B'))
color = 'Y';
else if ((color == 'B' || color == 'Y') && (s[i] == 'Y' || s[i] == 'B'))
color = 'G';
else
color = 'B';
}
}
return color;
}
int main() {
string color_str = "GBYBGY";
cout << "Color Combination Result: " << combination(color_str);
}
Kết quả
Color Combination Result: B