1576. 替换所有的问号

题目链接:https://leetcode-cn.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters

执行用时:0 ms, 在所有 Swift 提交中击败了100.00%的用户
内存消耗:13.3 MB, 在所有 Swift 提交中击败了100.00%的用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
func modifyString(_ s: String) -> String {
var arr = Array(s)
let len = arr.count
var ch:Character = "a"
for i in 0 ..< len {
if arr[i] == "?" {
let aValue = Int(("a" as UnicodeScalar).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
}
}
return String(arr)
}
}

java代码,来自题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
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;
}
}
return new String(ss);
}
}

1576. 替换所有的问号
https://pisces34.github.io/2022/01/06/leetcode/1576/
发布于
2022年1月6日
许可协议