题目
类型:字符串
解题思路
尝试对每个 s[i] 进行替换,能够替换的前提是 s[i] 为 ?,且替换字符与前后字符(若存在)不同,由于只需要确保与前后字符不同,因此必然最多在 3 个字符内找到可替换的值。
代码
class Solution {public String modifyString(String s) {char[] cs = s.toCharArray();int n = cs.length;for (int i = 0; i < n; i++) {for (int c = 0; c < 3 && cs[i] == '?'; c++) {boolean ok = true;if (i - 1 >= 0 && cs[i - 1] == c + 'a') ok = false;if (i + 1 < n && cs[i + 1] == c + 'a') ok = false;if (ok) cs[i] = (char)(c + 'a');}}return String.valueOf(cs);}}
