467. Unique Substrings in Wraparound String

来源:互联网 发布:淘宝达人登录网址 编辑:程序博客网 时间:2024/06/15 13:13

467. Unique Substrings in Wraparound String

  • 题目描述:Consider the string s to be the infinite wraparound string of “abcdefghijklmnopqrstuvwxyz”, so s will look like this: “…zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd….”.

    Now we have another string p. Your job is to find out how many unique non-empty substrings of p are present in s. In particular, your input is the string p and you need to output the number of different non-empty substrings of p in the string s.

    Note: p consists of only lowercase English letters and the size of p might be over 10000.

  • Example 1:

    Input: "a"Output: 1Explanation: Only the substring "a" of string "a" is in the string s.
  • Example 2:

    Input: "cac"Output: 2Explanation: There are two substrings "a", "c" of string "cac" in the string s.
  • Eample 3:

    Input: "zab"Output: 6Explanation: There are six substrings "z", "a", "b", "za", "ab", "zab" of string "zab" in the string s.
  • 题目大意:给定一个无限循环的字符串(从A到Z无限循环)S,给定一个字符串P,问P中有多少个非空连续的子串可以在S中出现。

  • 思路:DP,首先观察字符串abc,有字符子串a,b,ab,c,bc,abc,其中以a结尾的子串只有a长度为1,以b结尾的子串有b,ab长度为2,以c结尾的子串有c,bc,abc,观察可得,要求以某一字符结尾的子串的个数,即求的以该字符结尾的最长的子串长度即可。所以找出p中每个字符(a-z)结尾的最长连续子串的长度,并将所有长度相加,即所求结果。

  • 代码

    package DP;/*** @author OovEver* 2017/12/24 23:53*/public class LeetCode467 {  public int findSubstringInWraproundString(String p) {      int[] count = new int[26];//        以某个字符结尾的字符的最大长度      int maxLength = 0;      for(int i=0;i<p.length();i++) {          if (i > 0 && (p.charAt(i) - p.charAt(i - 1) == 1 || p.charAt(i) - p.charAt(i - 1) == -25)) {              maxLength++;          } else {              maxLength = 1;          }          int index = p.charAt(i) - 'a';          count[index] = Math.max(count[index], maxLength);      }      int sum = 0;      for(int i=0;i<26;i++) {          sum += count[i];      }      return sum;  }}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华润新能源 华润二十四 华润投资 华润发电厂 华润医疗 华润堂 华润五彩城 华润金悦湾 华润木器漆 华润紫竹 华润怡宝 华润水泥厂 华润校招 华润雪花 华润天然气 华润物流 华润贷款 华润金融 华润商务楼 华润租赁 华润系 华润煤业 华润ole 华润城润府 华润电厂 华润二手房 华润牌水泥 华润排名 华润万 华润腻子粉 华润百尊 华润商业 华润公寓 华润风电 华润儿童漆 华润万家ole 华润集团总部大厦 华润集团有限公司 华润燃气客服电话 华润置地有限公司 华润广东医药