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;
}
}