467. Unique Substrings in Wraparound String
2017-05-15 20:20
411 查看
Consider the string
Now we have another string
Note:
Example 1:
Example 2:
Example 3:
这道题其实就是寻找一个字符串p中有多少个非空子串包含在s中。所求的子串具有连续递增的特点,即类似abcd、zabc而不是acd。解题方法为找出以’a-z’每个字符结尾的情况下,最长的子串有多长,然后将其相加就可以。代码如下:
public
int findSubstringInWraproundString(String p) {
int p_int[] =
new int[p.length()];
int count[] =
new int[26];
for(int i=0;i<p.length();i++){
p_int[i] = p.charAt(i) - 'a';
}
int res = 0;
int maxLen =
0;
for( int i=0;i<p.length();i++ ){
if( i>0 && (p_int[i-1] +
1) % 26 == p_int[i]){
maxLen ++ ;
} else{
maxLen = 1;
}
count[p_int[i]] = Math.max(count[p_int[i]],maxLen);
}
for( int i=0;i<26;i++)
res += count[i];
return res;
}
sto be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz", so
swill look like this: "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
Now we have another string
p. Your job is to find out how many unique non-empty substrings of
pare present in
s. In particular, your input is the string
pand you need to output the number of different non-empty substrings of
pin the string
s.
Note:
pconsists of only lowercase English letters and the size of p might be over 10000.
Example 1:
Input: "a" Output: 1 Explanation: Only the substring "a" of string "a" is in the string s.
Example 2:
Input: "cac" Output: 2 Explanation: There are two substrings "a", "c" of string "cac" in the string s.
Example 3:
Input: "zab" Output: 6 Explanation: There are six substrings "z", "a", "b", "za", "ab", "zab" of string "zab" in the string s.
这道题其实就是寻找一个字符串p中有多少个非空子串包含在s中。所求的子串具有连续递增的特点,即类似abcd、zabc而不是acd。解题方法为找出以’a-z’每个字符结尾的情况下,最长的子串有多长,然后将其相加就可以。代码如下:
public
int findSubstringInWraproundString(String p) {
int p_int[] =
new int[p.length()];
int count[] =
new int[26];
for(int i=0;i<p.length();i++){
p_int[i] = p.charAt(i) - 'a';
}
int res = 0;
int maxLen =
0;
for( int i=0;i<p.length();i++ ){
if( i>0 && (p_int[i-1] +
1) % 26 == p_int[i]){
maxLen ++ ;
} else{
maxLen = 1;
}
count[p_int[i]] = Math.max(count[p_int[i]],maxLen);
}
for( int i=0;i<26;i++)
res += count[i];
return res;
}
相关文章推荐
- 467. Unique Substrings in Wraparound String**
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- [leetcode 467]Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- 467. Unique Substrings in Wraparound String
- leetcode 467 c语言. Unique Substrings in Wraparound String
- LeetCode 467 Unique Substrings in Wraparound String (思维题)
- 467. Unique Substrings in Wraparound String
- Unique Substrings in Wraparound String
- [LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串
- leetcode:Unique Substrings in Wraparound String
- [LeetCode]Unique Substrings in Wraparound String