[leetcode]Unique Substrings in Wraparound String
来源:互联网 发布:怎么开淘宝充值店 编辑:程序博客网 时间:2024/05/25 23:57
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.Example 3:Input: "zab"Output: 6Explanation: There are six substrings "z", "a", "b", "za", "ab", "zab" of string "zab" in the string s.
Solution post: Concise Java solution using DP
It first get the length of the longest substring ending with each character: ‘a’, ‘b’, ‘c’ … ‘z’. Then the number of unique substrings is the sum of the lengths.
Example:
ababc:
Thus the result is
1 a+ 2 b, ab+ 1 c equals 6
code
int findSubstringInWraproundString(string p){ int count[26] = { 0 }; int len = 0; for (int i = 0; i < p.length(); ++i) { if (i > 0 && (p[i] - p[i - 1] == 1 || p[i - 1] - p[i] == 25)) ++len; else len = 1; int index = p[i] - 'a'; if (count[index] < len) count[index] = len; } int ans = 0; for (int i = 0; i < 26; ++i) ans += count[i]; return ans;}
阅读全文
0 0
- Leetcode-467. Unique Substrings in Wraparound String
- [LeetCode]Unique Substrings in Wraparound String
- [leetcode 467]Unique Substrings in Wraparound String
- Leetcode 467. Unique Substrings in Wraparound String
- 【LeetCode】467. Unique Substrings in Wraparound String
- Leetcode-467. Unique Substrings in Wraparound String
- [LeetCode]467. Unique Substrings in Wraparound String
- **LeetCode 467. Unique Substrings in Wraparound String
- 【LeetCode】467. Unique Substrings in Wraparound String
- Leetcode-Unique Substrings in Wraparound String
- leetcode Unique Substrings in Wraparound String
- [Leetcode.467]Unique Substrings in Wraparound String
- [LeetCode]Unique Substrings in Wraparound String
- leetcode:Unique Substrings in Wraparound String
- [leetcode]Unique Substrings in Wraparound String
- [LeetCode] Unique Substrings in Wraparound String
- LeetCode 467. Unique Substrings in Wraparound String
- [leetcode]467. Unique Substrings in Wraparound String
- iOS 开发者的公司账号与个人账号之间的区别
- Android实战屏幕适配方案-基础知识
- java 数据类型相互转换
- 对于JAVA实现SFTP实例-SSH-2.0-OpenSSH_5.3等报错解决
- LINUX 安装中文字体(.ttf)
- [leetcode]Unique Substrings in Wraparound String
- matplotlib安装“is not a supported wheel"问题解决
- 史上最全WebView使用,附送Html5Activity一份
- Modbus学习总结
- centos7.2安装mysql
- deepin--eclipse安装与配置
- cmos和ccd的区别
- windows下用gcc命令行编译并运行oc程序
- 我开通了博客