intuitive solution
rust\nimpl Solution {\n    pub fn minimum_moves(s: String) -> i32 {\n        let (bytes, mut i, mut moves) = (s.as_bytes(), 0, 0);\n        while i < bytes.len(
```rust\nimpl Solution {\n    pub fn minimum_moves(s: String) -> i32 {\n        let (bytes, mut i, mut moves) = (s.as_bytes(), 0, 0);\n        while i < bytes.len() {\n            i += match bytes[i] {\n                b\'X\' => {\n                    moves += 1;\n                    3\n                }\n                _ => 1,\n            }\n        }\n        return moves;\n    }\n}\n```
['Rust']