Codeforces 1480A. Yet Another String Game (阅读理解题)

题意

  1. Alice和Bob对一个小写英文字符串进行操作,Alice先手。
  2. Alice的策略是让字符串字典序最小,Bob的策略是让字符串的字典序最大。
  3. 每次双方都只能选择一个未操作过的字符进行替换(将小写英文字符1替换成小写英文字符2)。
  4. 直到没有可操作的字符,输出最终字符串。

解题思路

  1. Alice与Bob都从字符串首部开始遍历。(因为越靠近首部的字符对字典序影响越大)
  2. Alice每次都将字符变成字典序最小的'a',若原先字符是'a'则将其变成字典序次小的'b'。
  3. Bob每次都将字符变成字典序最大的'z',若原先字符是'z'则将其变成字典序次大的'y'。

C++ Code

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	int t;
	string s;
	cin >> t;
	while (t--) {
		cin >> s;
		for (int i = 0; i < s.length(); ++i) {
			if (i & 1) {
				if (s[i] == 'z')
					putchar('y');
				else
					putchar('z');
			} else {
				if (s[i] == 'a')
					putchar('b');
				else
					putchar('a');
			}
		}
		putchar('\n');
	}

	return 0;
}
posted @ 2021-02-08 13:34  ninding  阅读(86)  评论(0编辑  收藏  举报