
ACM-字符串
luke2834
A junior researcher~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 336. Palindrome Pairs 给出一种遍历字符串回文子串中心的方法
题意给你n个不同的字符串,让你找出所有的字符串对(i, j),使得s(i) + s(j)是回文串且i不等于j思路这题没有给数据范围,所以你其实不知道应该给什么复杂度的算法,我看了眼Discussion,先确定了下需要的复杂度复杂度是O(n * k ^ 2),其中k是字符串的平均长度算法思路并不复杂,考虑第i个字符串,如果s = s(i) + s(j)是答案之一,且i是较长的字符串,那么s的原创 2017-10-03 14:05:25 · 440 阅读 · 0 评论 -
Leetcode 753. Cracking the Safe 双端队列实现 给出证明思路
题意我们希望构造一个最短的字符串,这个字符串每位可以是0至k-1的字符,并且这个字符串的所有n长子串可以包含所有的nknkn^k种情况(即包含所有用k个字符构建的n长串)思路不难想象,如果构造的这个串每一个n长子串恰好就是一个unique的情况,那么一定就是最短的串,长度为nk+n−1nk+n−1n^k + n - 1先假设我们一定可以构造出这样的串。然后可以换一个角度来看这个...原创 2018-02-21 03:46:54 · 1301 阅读 · 0 评论 -
Leetcode 537. Complex Number Multiplication
题意就是两个复数以字符串形式输入,计算相加结果思路思路很简单,就是用+号切字符串,再算就行了记下来的原因,主要是记录下string split的函数,以后方便找实现class Solution {public: void split(string& s, vector<string>& res, const string&am...原创 2018-09-17 18:14:36 · 165 阅读 · 0 评论 -
718. Maximum Length of Repeated Subarray 后缀数组解最长公共子串 O(n log^2 n)时间复杂度
题意找最长公共子串思路用dp的方法很容易在O(n^2)解决问题,这里主要讨论用后缀数组的思路解决这个问题后缀数组里有两个经典的概念或者称为数据结构,就是后缀数组SA,以及高度数组LCPSA数组的定义是:将原串S所有的后缀按字典序排序后,定义rank(i)为后缀S[i…]的排名,SA数组是rank数组的逆映射,即SA(rank(i)) = iLCP数组的定义是:LCP(i)是后缀S...原创 2018-10-06 20:44:50 · 283 阅读 · 0 评论 -
Leetcode 1032. Stream of Characters Trie树
题意一个数据结构题,给定一个字典,初始化一个数据结构。每次查询是给一个字符,返回的信息是一个bool类型的。如果存在一个K,使得从当前字符开始往前看K个构建的字符串落在字典中,则返回true否则false数据范围:1 <= words.length <= 2000,1 <= words[i].length <= 2000,查询总数不超过40000思路对字典中字...原创 2019-04-30 10:39:17 · 358 阅读 · 0 评论