LCP 17. 速算机器人 #
题目 #
- 小扣在秋日市集发现了一款速算机器人。店家对机器人说出两个数字(记作
x和y),请小扣说出计算指令:"A"运算:使x = 2 * x + y;"B"运算:使y = 2 * y + x。
- 在本次游戏中,店家说出的数字为
x = 1和y = 0,小扣说出的计算指令记作仅由大写字母A、B组成的字符串s,字符串中字符的顺序表示计算顺序,请返回最终x与y的和为多少。
思路 #
模拟 #
数学 #
代码 #
模拟 #
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;
}
}