# 1807. 替换字符串中的括号内容
难度:中等
解题思路:
- knowledge 转换 hashmap 便于查找
- 依次遍历 s,获取()中的字符串为 key,如果 hashmap 中不存在 key 对应的 value 则替换为 "?"
func evaluate(s string, knowledge [][]string) string { | |
var know = map[string]string{} | |
for _, v := range knowledge { | |
know[v[0]] = v[1] | |
} | |
slen := len(s) | |
var ans strings.Builder | |
for i:=0;i < slen; i++ { | |
if s[i] == '(' { | |
for j:= i+1; j< slen; j++ { | |
if s[j] == ')'{ | |
if v, ok:= know[s[i+1:j]]; ok { | |
ans.WriteString(v) | |
}else { | |
ans.WriteByte('?') | |
} | |
i = j | |
break; | |
} | |
} | |
continue | |
} | |
ans.WriteByte(s[i]) | |
} | |
return ans.String() | |
} |