25 lines
468 B
Go
25 lines
468 B
Go
// Package q3612 implements a solution for https://leetcode.com/problems/process-string-with-special-operations-i/
|
|
package q3612
|
|
|
|
import "slices"
|
|
|
|
func processStr(s string) string {
|
|
ret := make([]byte, 0, len(s)*2)
|
|
|
|
for i := range len(s) {
|
|
switch s[i] {
|
|
case '*':
|
|
ret = ret[:max(len(ret)-1, 0)]
|
|
case '#':
|
|
ret = append(ret, ret...)
|
|
case '%':
|
|
slices.Reverse(ret)
|
|
default:
|
|
ret = append(ret, s[i])
|
|
}
|
|
}
|
|
|
|
return string(ret)
|
|
}
|
|
|
|
var _ = processStr
|