feat(Go-Tool):优化Sunday代码

This commit is contained in:
Huangzj
2021-03-04 13:49:03 +08:00
parent dc5d924a2c
commit 351df675bd
+5 -5
View File
@@ -6,17 +6,17 @@
package stringMatch package stringMatch
func ShiftTable(modeString string) []int { func ShiftTable(mode string) []int {
shiftTable := make([]int, 256) shiftTable := make([]int, 256)
//一开始设置所有的字符匹配不上向右移动大小为:模式字符串长度 + 1(因为要移动到下一个字符的后一位) //一开始设置所有的字符匹配不上向右移动大小为:模式字符串长度 + 1(因为要移动到下一个字符的后一位)
for i := range shiftTable { for i := range shiftTable {
shiftTable[i] = len(modeString) + 1 shiftTable[i] = len(mode) + 1
} }
//设置模式字符串中每一个字符的移动长度. //设置模式字符串中每一个字符的移动长度.
for i := range modeString { for i := range mode {
shiftTable[modeString[i]-'a'] = len(modeString) - i shiftTable[mode[i]] = len(mode) - i
} }
return shiftTable return shiftTable
@@ -38,7 +38,7 @@ func SundayMatch(allString, modeString string) int {
} }
//找到移动后模式字符串对应原始字符串的第一个位置 //找到移动后模式字符串对应原始字符串的第一个位置
move := allString[i+mLength] move := allString[i+mLength]
i = i + table[move-'a'] i = i + table[move]
} }
return -1 return -1