1576. 替换所有的问号

题目要求替换掉全部的?字符,需要考虑到特殊字符出现在

头尾的边界情况。遍历字符串的所有元素,针对特殊字符,我们获取

当前位置的前后一个元素,然后从a开始递推,得到不与前后元素

相同的第一个元素即可。

 1     public String modifyString(String s) {
 2         char[] chars = s.toCharArray();
 3         for (int i = 0; i < chars.length; i++) {
 4             if (chars[i] == '?') {
 5                 //前面一个字符  如果当前是第0个的话 字符就为‘ ’
 6                 char ahead = i == 0 ? ' ' : chars[i - 1];
 7                 //后面一个字符  如果当前是最后一个的话 字符就为‘ ’
 8                 char behind  = i == chars.length - 1 ? ' ' : chars[i + 1];
 9                 //从a开始比较  如果等于前面或者后面的话 就+1
10                 char temp = 'a';
11                 while (temp == ahead || temp == behind ) {
12                     temp++;
13                 }
14                 //找到目标字符后 做替换
15                 chars[i] = temp;
16             }
17         }
18         return new String(chars);
19     }
争取早日不再是一只菜鸡
原文地址:https://www.cnblogs.com/jchen104/p/14744288.html