LeetCode838. 推多米诺
1. 问题描述
2. 思路
双指针
3. 代码
func pushDominoes(dominoes string) string {
dominoes = "L" + dominoes + "R"
res := ""
for i, j := 0, 1; j < len(dominoes); j++ {
if dominoes[j] == '.' {
continue
}
if i > 0 {
res += string(dominoes[i])
}
middle := j - i - 1
if dominoes[i] == dominoes[j] {
for k := 0; k < middle; k++ {
res += string(dominoes[i])
}
} else if dominoes[i] == 'L' && dominoes[j] == 'R' {
for k := 0; k < middle; k++ {
res += string('.')
}
} else {
for k := 0; k < middle / 2; k++ {
res += string('R')
}
for k := 0; k < middle % 2; k++ {
res += string('.')
}
for k := 0; k < middle / 2; k++ {
res += string('L')
}
}
i = j
}
return res
}