This commit is contained in:
Horis 2023-12-11 16:16:41 +08:00
parent e86c211b58
commit 635d4360d9
2 changed files with 30 additions and 22 deletions

View File

@ -2,6 +2,7 @@ package io.legado.app.utils
import com.github.liuyueyi.quick.transfer.ChineseUtils
import com.github.liuyueyi.quick.transfer.constants.TransType
import com.github.liuyueyi.quick.transfer.dictionary.BasicDictionary
import com.github.liuyueyi.quick.transfer.dictionary.DictionaryContainer
object ChineseUtils {
@ -30,15 +31,20 @@ object ChineseUtils {
fun fixT2sDict() {
val dict = DictionaryContainer.getInstance().getDictionary(TransType.TRADITIONAL_TO_SIMPLE)
dict.chars.run {
remove('劈')
remove('脊')
dict.run {
remove("")
remove("")
remove("支援")
remove("沈默")
remove("路易斯")
}
kotlin.runCatching {
dict.dict.run {
remove("支援")
remove("路易斯")
}
}
fun BasicDictionary.remove(key: String) {
if (key.length == 1) {
chars.remove(key[0])
} else {
dict.remove(key)
}
}

View File

@ -19,20 +19,22 @@ fun <T> TrieNode<T>.getChildren(): HashMap<Char, TrieNode<T>> {
}
fun <T> Trie<T>.remove(value: String) {
var node = getRoot()
val nodes = arrayListOf<TrieNode<T>>()
val chars = value.toCharArray()
for (c in chars) {
nodes.add(node)
node = node.getChildren()[c] ?: break
if (!node.isLeaf) {
continue
}
for ((ch, n) in chars.reversed().zip(nodes.reversed())) {
val children = n.getChildren()
children.remove(ch)
if (children.isNotEmpty()) {
break
kotlin.runCatching {
var node = getRoot()
val nodes = arrayListOf<TrieNode<T>>()
val chars = value.toCharArray()
for (c in chars) {
nodes.add(node)
node = node.getChildren()[c] ?: break
if (!node.isLeaf) {
continue
}
for ((ch, n) in chars.reversed().zip(nodes.reversed())) {
val children = n.getChildren()
children.remove(ch)
if (children.isNotEmpty()) {
break
}
}
}
}