classSolution{ funcmodifyString(_s: String) -> String { var arr =Array(s) let len = arr.count var ch:Character="a" for i in0..< len { if arr[i] =="?" { let aValue =Int(("a"asUnicodeScalar).value) var count =0 // 与两边字符比较是否相等 while (i >0&& arr[i-1] == ch) || (i < len-1&& arr[i+1] == ch) { // ascii码转换 ch =Character(UnicodeScalar(count + aValue)!) count +=1 } arr[i] = ch } } returnString(arr) } }
java代码,来自题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
classSolution{ public String modifyString(String s){ char[] ss = s.toCharArray(); for (int i =0; i < s.length(); i++) { if (ss[i] == '?') { char a = 'a'; while((i>0 && a == ss[i-1]) || (i < ss.length-1 && ss[i+1] == a)) { a++; } ss[i] = a; } } returnnew String(ss); } }