File tree 3 files changed +7
-7
lines changed
BoyerMooreHorspool.playground
3 files changed +7
-7
lines changed Original file line number Diff line number Diff line change 13
13
http://www.drdobbs.com/database/faster-string-searches/184408171
14
14
*/
15
15
extension String {
16
- func index( of pattern: String , usingHorspoolImprovement: Bool = false ) -> Int ? {
16
+ func index( of pattern: String , usingHorspoolImprovement: Bool = false ) -> Index ? {
17
17
// Cache the length of the search pattern because we're going to
18
18
// use it a few times and it's expensive to calculate.
19
19
let patternLength = pattern. count
@@ -57,7 +57,7 @@ extension String {
57
57
if c == lastChar {
58
58
59
59
// There is a possible match. Do a brute-force search backwards.
60
- if let k = backwards ( ) { return k. encodedOffset }
60
+ if let k = backwards ( ) { return k }
61
61
62
62
if !usingHorspoolImprovement {
63
63
// If no match, we can only safely skip one character ahead.
Original file line number Diff line number Diff line change 3
3
version = " 3.0" >
4
4
<TimelineItems >
5
5
<LoggerValueHistoryTimelineItem
6
- documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563159867.556089 "
6
+ documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563161016.665907 "
7
7
selectedRepresentationIndex = " 0"
8
8
shouldTrackSuperviewWidth = " NO" >
9
9
</LoggerValueHistoryTimelineItem >
10
10
<LoggerValueHistoryTimelineItem
11
- documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563159867.5563149 "
11
+ documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563161016.666045 "
12
12
selectedRepresentationIndex = " 0"
13
13
shouldTrackSuperviewWidth = " NO" >
14
14
</LoggerValueHistoryTimelineItem >
15
15
<LoggerValueHistoryTimelineItem
16
- documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563159867.556504 "
16
+ documentLocation = " file:///Users/francisco_saldana/Documents/Nearsoft/Open%20source/swift-algorithm-club/Boyer-Moore-Horspool/BoyerMooreHorspool.playground#CharacterRangeLen=0& CharacterRangeLoc=75& EndingColumnNumber=21& EndingLineNumber=2& StartingColumnNumber=21& StartingLineNumber=2& Timestamp=563161016.666169 "
17
17
selectedRepresentationIndex = " 0"
18
18
shouldTrackSuperviewWidth = " NO" >
19
19
</LoggerValueHistoryTimelineItem >
Original file line number Diff line number Diff line change 6
6
http://www.drdobbs.com/database/faster-string-searches/184408171
7
7
*/
8
8
extension String {
9
- func index( of pattern: String , usingHorspoolImprovement: Bool = false ) -> Int ? {
9
+ func index( of pattern: String , usingHorspoolImprovement: Bool = false ) -> Index ? {
10
10
// Cache the length of the search pattern because we're going to
11
11
// use it a few times and it's expensive to calculate.
12
12
let patternLength = pattern. count
@@ -50,7 +50,7 @@ extension String {
50
50
if c == lastChar {
51
51
52
52
// There is a possible match. Do a brute-force search backwards.
53
- if let k = backwards ( ) { return k. encodedOffset }
53
+ if let k = backwards ( ) { return k }
54
54
55
55
if !usingHorspoolImprovement {
56
56
// If no match, we can only safely skip one character ahead.
You can’t perform that action at this time.
0 commit comments