summaryrefslogtreecommitdiff
path: root/remove-colored-pieces-if-both-neighbors-are-the-same-color/src
diff options
context:
space:
mode:
Diffstat (limited to 'remove-colored-pieces-if-both-neighbors-are-the-same-color/src')
-rw-r--r--remove-colored-pieces-if-both-neighbors-are-the-same-color/src/main.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/remove-colored-pieces-if-both-neighbors-are-the-same-color/src/main.rs b/remove-colored-pieces-if-both-neighbors-are-the-same-color/src/main.rs
new file mode 100644
index 0000000..298c43d
--- /dev/null
+++ b/remove-colored-pieces-if-both-neighbors-are-the-same-color/src/main.rs
@@ -0,0 +1,31 @@
+fn main() {
+ println!("Hello, world!");
+ let tests = [
+ ("AAABABB", true),
+ ("AA", false),
+ ("ABBBBBBBAAA", false),
+ ("AAAABBBB", false)
+ ];
+ for (input, output) in tests {
+ let result = Solution::winner_of_game(input.to_string());
+ println!("{input:?} is {result} should be {output:?}");
+ }
+}
+
+struct Solution;
+
+impl Solution {
+ pub fn winner_of_game(mut colors: String) -> bool {
+ if colors.len() < 3 {return false;}
+ let mut is_alice_turn = true;
+ while ((is_alice_turn && colors.contains("AAA")) || (!is_alice_turn) && colors.contains("BBB")) {
+ if is_alice_turn {
+ colors = colors.replacen("AAA", "AA", 1);
+ } else {
+ colors = colors.replacen("BBB", "BB", 1);
+ }
+ is_alice_turn = !is_alice_turn
+ }
+ !is_alice_turn
+ }
+}