1 条题解
-
0
刚开始先判断当前牌堆是否已空,空的话输出,跳出循环。 具体实现是看当前牌堆顶指针是否已经指到len[k]处。
if (p[k] == len[k]) { printf("%c\n", k + 'A'); break; }
倘若非空的话,把k指向当前牌堆顶的字母所指的牌堆,同时当前牌堆顶指针后移一位。
k = s[k][p[k]++] - 'a';
AC Code
#include <iostream> #include <cstdio> #include <string> using namespace std; string s[3]; int p[3]; int len[3]; int k = 0; int main() { for (int i = 0; i < 3; ++i) cin >> s[i], len[i] = s[i].size(); while (1) { if (p[k] == len[k]) { printf("%c\n", k + 'A'); break; } k = s[k][p[k]++] - 'a'; } return 0; }
- 1
信息
- ID
- 411
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 120
- 已通过
- 5
- 上传者