| 123456789101112131415161718192021222324 | 
							- func findSubstringInWraproundString(p string) (cnt int) {
 
- 	n := len(p)
 
- 	if n == 0 {
 
- 		return
 
- 	}
 
- 	dp := make([]int, 256)
 
- 	runes := []rune(p)
 
- 	l := 1
 
- 	dp[runes[0]] = 1
 
- 	for i := 1; i < n; i++ {
 
- 		if runes[i] != rune((runes[i-1]-'a'+1)%26+'a') {
 
- 			l = 1
 
- 		} else {
 
- 			l++
 
- 		}
 
- 		if dp[runes[i]] < l {
 
- 			dp[runes[i]] = l
 
- 		}
 
- 	}
 
- 	for i := 'a'; i <= 'z'; i++ {
 
- 		cnt += dp[i]
 
- 	}
 
- 	return
 
- }
 
 
  |