feat(Go-Tool):优化Sunday代码
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user