LeetCode 字符串专题 <c++>

\([5]\) Longest Palindromic Substring

最长回文子串

\([28]\) Implement strStr()

要求实现c++中strstr()函数。

解法一:暴力 时间复杂度 \(O(nm)\)

解法二:KMP,时间复杂度 \(O(n+m)\),附代码

class Solution {
public:
int strStr(std::string haystack, std::string needle) {
return kmp(haystack.c_str(), needle.c_str());
} private:
static void compute(const char *parttern, int next[]) {
int i;
int j = -1;
const int m = strlen(parttern);
next[0] = j;
for (i = 1; i < m; i++) {
while (j > -1 && parttern[j + 1] != parttern[i]) j = next[j];
if (parttern[i] == parttern[j + 1]) j++;
next[i] = j;
}
} static int kmp(const char *text, const char *parttern) {
int i;
int j = -1;
const int n = strlen(text);
const int m = strlen(parttern);
if (m == 0) return 0;
int *next = (int *) malloc(sizeof(int) * m);
compute(parttern, next);
for (i = 0; i < n; i++) {
while (j > -1 && parttern[j + 1] != text[i]) j = next[j];
if (text[i] == parttern[j + 1]) j++;
if (j == m - 1) {
free(next);
return i - j;
}
}
free(next);
return -1;
}
};

[\(49\)] Group Anagrams

将每个字符串的字符排完序后,若两个字符串相同,则构成原串的字母种类及数量都相同,即属于同一组‘Anagrams’。

hash,时间复杂度 \(O(n)\)

class Solution {
public:
std::vector<std::vector<std::string>> groupAnagrams(std::vector<std::string> &strs) {
std::unordered_map<std::string, std::vector<std::string>> ump;
for (auto i = strs.begin(); i != strs.end(); i++) {
auto key = *i;
std::sort(key.begin(), key.end());
ump[key].push_back(*i);
}
std::vector<std::vector<std::string>> res;
for (auto i = ump.begin(); i != ump.end(); i++) {
res.push_back(i->second);
}
return res;
}
};

LeetCode 字符串专题(一)的更多相关文章

  1. Leetcode字符串专题

    Leetcode38. Count and Say 分析:根据题意,数列的下一项就是统计上一项中每个数字出现的次数,理解清楚题意就很简单了 class Solution { public: strin ...

  2. 【leetcode 字符串处理】Compare Version Numbers

    [leetcode 字符串处理]Compare Version Numbers @author:wepon @blog:http://blog.csdn.net/u012162613 1.题目 Com ...

  3. NOIP2018提高组金牌训练营——字符串专题

    NOIP2018提高组金牌训练营——字符串专题 1154 回文串划分 有一个字符串S,求S最少可以被划分为多少个回文串. 例如:abbaabaa,有多种划分方式.   a|bb|aabaa - 3 个 ...

  4. LeetCode树专题

    LeetCode树专题 98. 验证二叉搜索树 二叉搜索树,每个结点的值都有一个范围 /** * Definition for a binary tree node. * struct TreeNod ...

  5. leetcode 字符串类型题

    1,Vaild Palindrome bool isPalindrome(string& s) { transform(s.begin(), s.end(), s.begin(), tolow ...

  6. leetcode 字符串中的第一个唯一字符

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引.如果不存在,则返回 -1. 案例: s = "leetcode" 返回 0. s = "loveleetcod ...

  7. leetcode 字符串动态规划总结

    问题1:leetcode 正则表达式匹配 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配 ...

  8. 字符串专题:map POJ 1002

    第一次用到是在‘校内赛总结’扫地那道题里面,大同小异 map<string,int>str 可以专用做做字符串的匹配之类的处理 string donser; str [donser]++ ...

  9. PHP 截取字符串专题

    1. 截取GB2312中文字符串 < ?php//截取中文字符串function mysubstr($str, $start, $len) {    $tmpstr = "" ...

随机推荐

  1. L2-008 最长对称子串 (25 分) (模拟)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 题目: 对给定的字符串,本题要求你输出 ...

  2. ubuntu系统的teamviewer的安装及使用

    参考链接: 安装: https://blog.csdn.net/weixin_34613450/article/details/80541799 使用: https://jingyan.baidu.c ...

  3. ThinkPHP 2053错误

    这个报错是调用存储过程的时候产生的,用的是5.1的代码是根据官方文档写的,我怀疑5.0也有这个问题.去官方查了一下发现不少人有这个问题,但是官方都没有回应过,只能自己动手一步步调了. $center ...

  4. unity 屏幕适配的问题

    首先是AB的加载时,会出现localscale的改变,需要在初始化时将其调节为1.0并且 offmax和min都设置为0,此时方才会出现在自己臆想之中(尤其是需要设置父节点时)

  5. Django组件-中间件

    1.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...

  6. 协议形式化分析Scyther 资料整理

    1.性能分析 目前来说形式化的分析已经成为安全协议的一种很流行的方法,但是每种工具都用其不同适合的协议,Scyther软件是一种形式化分析工具,极大的促进了协议的分析和设计,scyther工具在运行界 ...

  7. Python 包管理(PYPA)

    Python包的管理可以通过Python 自带的管理 工具,例如:package-autoremove,package-list-packages, package-install 等,使用起来也非常 ...

  8. 【玩转开源】使用 PhoenixSuit 线刷 Android 镜像

    先看看效果图: 我这里以BananaPi M2U(全志R40)板子为例,线刷之前,你需要准备这些东西: 1. 硬件:一块全志平台的开发板,一根OTG-USB线,整个过程不需要额外的Power DC供电 ...

  9. 利用MMdnn对比keras和mxnet

    关键字 MMdnn,keras,mxnet,resnet50 需求:想测试一下keras下model转到MXNet框架下对于同一张图片各中间层输出结果有什么差异. 一. 前期准备 1. 依赖库的选择 ...

  10. Angular动画——路由动画及高阶动画函数

    一.路由动画 路由动画需要在host元数据中指定触发器.动画注意不要过多,否则适得其反. 内容优先,引导用户去注意到某个内容.动画只是辅助手段. 定义一个进场动画,一个离场动画. 因为进场动画和离场动 ...