17. 速算机器人

LCP 17. 速算机器人 #

题目 #

  • 小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作 xy),请小扣说出计算指令:
    • "A" 运算:使 x = 2 * x + y
    • "B" 运算:使 y = 2 * y + x
  • 在本次游戏中,店家说出的数字为 x = 1y = 0,小扣说出的计算指令记作仅由大写字母 AB 组成的字符串 s,字符串中字符的顺序表示计算顺序,请返回最终 xy 的和为多少。

思路 #

模拟 #

数学 #

代码 #

模拟 #

class Solution {
    public int calculate(String s) {
        int x = 1, y = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == 'A') x = 2 * x + y;
            else y = 2 * y + x;
        }
        return x + y;
    }
}

致谢 #

生存就是最大的幸运