LeetCode 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: 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.
分析
letters[i]表示 ‘a’+i结尾的最长子链。len记录的是以p[i]结尾的当时最长子链。如果len<=letters[curr] 则表示这些子链已经重复,不用加到res上。
其实只需要记录子链中以26个字母结尾的长度分别是多少,最后把它们加起来就可以了
class Solution {
public:
    int findSubstringInWraproundString(string p) {
        vector<int> letters(26, 0);
        int res = 0, len = 0;
        for (int i = 0; i < p.size(); i++) {
            int cur = p[i] - 'a';
            if (i > 0 && p[i - 1] != (cur + 26 - 1) % 26 + 'a') len = 0;
            if (++len > letters[cur]) {
                res += len - letters[cur];
                letters[cur] = len;
            }
        }
        return res;
    }
};
												
											LeetCode 467. Unique Substrings in Wraparound String的更多相关文章
- 【LeetCode】467. Unique Substrings in Wraparound String 解题报告(Python)
		
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/unique-s ...
 - 【LeetCode】467. Unique Substrings in Wraparound String
		
Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...
 - 467. Unique Substrings in Wraparound String
		
Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...
 - 467 Unique Substrings in Wraparound String 封装字符串中的独特子字符串
		
详见:https://leetcode.com/problems/unique-substrings-in-wraparound-string/description/ C++: class Solu ...
 - [LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串
		
Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...
 - Leetcode: Unique Substrings in Wraparound String
		
Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...
 - [Swift]LeetCode467. 环绕字符串中唯一的子字符串 | Unique Substrings in Wraparound String
		
Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz" ...
 - 动态规划-独特的子字符串存在于Wraparound String总个数 Unique Substrings in Wraparound String
		
2018-09-01 22:50:59 问题描述: 问题求解: 如果单纯的遍历判断,那么如何去重保证unique是一个很困难的事情,事实上最初我就困在了这个点上. 后来发现是一个动态规划的问题,可以将 ...
 - 467. [leetcode] Unique Substrings in Wraparound String
		
467. Unique Substrings in Wraparound String Implement atoi to convert a string to an integer. Hint: ...
 
随机推荐
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
			
那么 pageEncoding , contentType 分别用来做什么那?在解释之前让我们先了解下jsp从被请求到响应经历的三个阶段: 第一阶段:将jsp编译成Servlet(.java)文件.用 ...
 - FlashFXP Registration
			
-------- FlashFXP Registration Data START --------FLASHFXPuQBW1wi5uQAAAACvW7cJKQXzmx8Eu6ikXL4LbrYQHZ ...
 - 洛谷 P3375 【模板】KMP字符串匹配 || HDU 1686 Oulipo || kmp
			
HDU-1686 P3375 kmp介绍: http://www.matrix67.com/blog/archives/115 http://www.cnblogs.com/SYCstudio/p/7 ...
 - 模拟 HDOJ 5099 Comparison of Android versions
			
题目传送门 /* 题意:比较型号的大小 模拟:坑点在长度可能为5,此时设为'A' */ #include <cstdio> #include <algorithm> #incl ...
 - Backbone学习记录(6)
			
路由 backbone将路由规则和一个方法名绑定到一起,来控制单页的hash,以及单页的前进后退. var UserRouter = Backbone.Router.extend({ routes: ...
 - CentOS 7.2安装pip
			
CentOS 7.2默认安装的python版本为python2.7.5,我的系统里面默认是没有安装pip 的,搜了下网上各路大侠的解决办法,如下: 使用yum安装python-pip,但是报错,说没有 ...
 - Dapper系列之一:Dapper的入门(多表批量插入)
			
Dapper介绍 简介: 不知道博客怎么去写去排版,查了好多相关博客,也根据自己做过项目总结,正好最近搭个微服务框架,顺便把搭建微服务框架所运用的知识都进行博客梳理,为了以后复习,就仔细琢 ...
 - P2142 高精度减法
			
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...
 - 微信小程序 插件介绍
			
小程序的插件是对一组js接口.自定义组件或页面的封装.插件不能独立运行,必须嵌入在其他小程序中才能被用户使用:而第三方小程序在使用插件时,也无法看到插件的代码.因此,插件适合用来封装自己的功能或服务, ...
 - JAVA设计模式--Strategy
			
策略模式就是说当我进行比较大小的时候定义一个策略的比较器Comparator,然后由具体的比较策略来决定用什么量来比较大小.