题目: 解答: 方法一: 线性时间复杂度解法这道题最优的解法就是线性复杂度了,为了保证每个元素是唯一的,至少得把每个字符都遍历一遍。 算法的思路就是遍历一遍字符串,然后把字符串中每个字符出现的次数保存在一个散列表中。这个过程的时间复杂度为 O(N)O(N),其中 NN 为字符串的长度。 接下来需要再 ...
分类:
其他好文 时间:
2020-05-03 20:16:06
阅读次数:
49
题目: 解答: 学习下这种思路,尤其是对最后一次进位的处理。 1 class Solution { 2 public: 3 string addBinary(string a, string b) 4 { 5 int la = a.size(); 6 int lb = b.size(); 7 8 s ...
分类:
其他好文 时间:
2020-05-03 20:14:57
阅读次数:
48
题目: 解答: 1 class Solution { 2 private: 3 bool isOrigin(char c) 4 { 5 if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || 6 c == 'A' || c == ...
分类:
其他好文 时间:
2020-05-03 20:14:12
阅读次数:
57
题目: 解答: 1 class Solution { 2 public: 3 int compress(vector<char>& chars) 4 { 5 6 if (chars.empty()) 7 { 8 return 0; 9 } 10 11 size_t j = 0; 12 int cnt ...
分类:
其他好文 时间:
2020-05-03 20:05:57
阅读次数:
53
题目: 解答: 1 class Solution { 2 public: 3 int strStr(string haystack, string needle) 4 { 5 if(needle == "") 6 { 7 return 0; 8 } 9 if(haystack == "") 10 { ...
分类:
其他好文 时间:
2020-05-03 18:54:51
阅读次数:
48
题目: 解答: 递归+记忆。 class Solution { public: unordered_map<int,string> map; string countAndSay(int n) { string res; if(map.count(n)) { return map[n]; } els ...
分类:
其他好文 时间:
2020-05-03 18:42:54
阅读次数:
60
题目: 解答: 方法一: 首先找出最短字符串,然后一个一个匹配。 具体代码如下: 1 class Solution 2 { 3 public: 4 string longestCommonPrefix(vector<string> &strs) 5 { 6 if(strs.size() == 0) ...
分类:
其他好文 时间:
2020-05-03 18:42:39
阅读次数:
56
题目: 解答: 代码行数:解析(1)构建一个字典记录所有罗马数字子串,注意长度为2的子串记录的值是(实际值 - 子串内左边罗马数字代表的数值); (2)这样一来,遍历整个 s的时候判断当前位置和前一个位置的两个字符组成的字符串是否在字典内,如果在就记录值,不在就说明当前位置不存在小数字在前面的情况, ...
分类:
其他好文 时间:
2020-05-03 18:27:35
阅读次数:
55
题目: 解答: 如果是括号的左半边,直接入栈即可; 如果是括号的右半边,需要与栈最上面的括号匹配,匹配失败直接返回false; for循环遍历结束后,判断栈是否为空,为空则表示所有的括号都已经匹配成功了。 1 class Solution { 2 public: 3 bool isValid(str ...
分类:
其他好文 时间:
2020-05-03 18:14:52
阅读次数:
49
[TOC] ? 748. 最短完整词 https://leetcode cn.com/problems/shortest completing word/ 描述 解答 我估计,是可以先把牌照里面的统计好,然后到目标单词里,一个个比对; c watch todo 2020 05 03 15:08 cp ...
分类:
其他好文 时间:
2020-05-03 17:03:48
阅读次数:
68