summaryrefslogtreecommitdiff
path: root/remove-colored-pieces-if-both-neighbors-are-the-same-color
diff options
context:
space:
mode:
authorOrangerot <purple@orangerot.dev>2024-06-27 11:30:16 +0200
committerOrangerot <purple@orangerot.dev>2024-06-27 11:30:16 +0200
commit4b0a6a01b051a4ebfbc17661d14cb23fe4f275fb (patch)
tree0072cca328fe5adb2ed61004010228ff85e2164d /remove-colored-pieces-if-both-neighbors-are-the-same-color
Initial commitHEADmain
Diffstat (limited to 'remove-colored-pieces-if-both-neighbors-are-the-same-color')
-rw-r--r--remove-colored-pieces-if-both-neighbors-are-the-same-color/Cargo.toml8
-rw-r--r--remove-colored-pieces-if-both-neighbors-are-the-same-color/src/main.rs31
2 files changed, 39 insertions, 0 deletions
diff --git a/remove-colored-pieces-if-both-neighbors-are-the-same-color/Cargo.toml b/remove-colored-pieces-if-both-neighbors-are-the-same-color/Cargo.toml
new file mode 100644
index 0000000..30239ca
--- /dev/null
+++ b/remove-colored-pieces-if-both-neighbors-are-the-same-color/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "remove-colored-pieces-if-both-neighbors-are-the-same-color"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
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
+ }
+}