字符串
枫流仁武
这个作者很懒,什么都没留下…
展开
-
LeetCode 925 长按键入
你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。我的解法:class Solution: def isLongPressedName(self, name: str, typed: str) -> bool: list1 = self.helper(name) ...原创 2020-10-21 07:31:17 · 83 阅读 · 0 评论 -
LeetCode LCP19 秋叶收藏集
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等,但均需大于等于 1。每次调整操作,小扣可以将一片红叶替换成黄叶或者将一片黄叶替换成红叶。请问小扣最少需要多少次调整操作才能将秋叶收藏集调整完毕。首先求得y和r的前缀和。在字符串的过程中有两个指针,一个原创 2020-10-01 08:18:15 · 93 阅读 · 0 评论 -
LeetCode 139 单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。from typing import *class TrieTree: def __init__(self): self.head = Node('#') def add(self, word): tem = self.head .原创 2020-09-15 19:45:47 · 86 阅读 · 0 评论 -
LeetCode 5514 检查字符串是否可以通过排序字符串得到另一个字符串
每次都对部分子串进行排序,可以得到的结论是经过几步操作之后字符串中的逆序对可能减少,而不可能增多。检查每种逆序对,如果个数增多,那么返回False。class Solution: def isTransformable(self, s: str, t: str) -> bool: n = len(s) sArr, tArr = [[0] * 10 for _ in range(10)], [[0] * 10 for _ in range(10)]原创 2020-09-13 14:38:49 · 103 阅读 · 0 评论 -
LeetCode 459 重复的子字符串
首先理解kmp算法,kmp算法代码如下:from typing import *def getNext(substr): """ 该函数的核心为构建next数组,该数组表示的是模式串开头有多少个和 当前位置之前字符匹配 比如模式串为abcabc next数组为:[0,0,0,1,2,3] :param substr: :return: """ idx, m = 0, len(substr) pnext = [0] *原创 2020-09-10 18:48:40 · 74 阅读 · 0 评论 -
LeetCode 1371 每个元音包含偶数次的最长子字符串
给你一个字符串s,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。class Solution: """ 十分巧妙的思想,利用,每个元音字母的奇偶性用一个数字表示 五位分别代表aeiou 比如ae就可以用 11000来表示 当然也可以通过哈希表来完成 子字符串问题可以考虑前缀和 pos表示一个"前缀和",将其理解为一个哈希表,前缀和为某一个值对应的下...原创 2020-09-10 17:42:08 · 89 阅读 · 0 评论 -
LeetCode 面试16.18 模式匹配
你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。本题采用枚举的方法,枚举“a”对应的子串长度,找到a和b对应的子串,判断能否匹配。class Solution:原创 2020-09-10 11:59:59 · 263 阅读 · 0 评论 -
LeetCode 17.13 恢复空格
该题为动态规划和字典树混合应用的题目。定义dp数组,下表为i代表到第i个位置最少的未识别字符数量。由于在处理dp数组第i个位置时,需要从后向前寻找匹配的单词,因此字典树中插入为倒序插入。from typing import *class Node(): def __init__(self, c): self.c = c self.next = {} self.isEnd = Falseclass Trie(): def原创 2020-09-09 21:13:54 · 115 阅读 · 0 评论 -
LeetCode 792 匹配子序列的单词数
利用哈希表实现。这里需要注意的是要求单词是字符串的子序列即可。from typing import *from collections import defaultdictclass Solution: """ 这道题利用哈希表解决。 每匹配一个字符,删除一个列表 """ def numMatchingSubseq(self, S: str, words: List[str]) -> int: ans = 0 dic原创 2020-09-09 21:01:03 · 140 阅读 · 0 评论 -
PAT 1152 Google Recruitment
题目描述:In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the picture below) for recruitment. The content is super-simple, a URL consisting of the first 10-...原创 2019-08-20 08:40:19 · 137 阅读 · 0 评论 -
PAT 1100 Mars Numbers
字符串处理#include <iostream>#include <vector>using namespace std;string strs1[12]={"tam","hel","maa","huh","tou","kes", "hei","elo", ...原创 2019-07-13 10:36:15 · 57 阅读 · 0 评论 -
PAT 1108 Finding Average
注意字符串和数字之间的相互转换#include <iostream>#include<string>#include <cmath>using namespace std;bool judge(string& string1){ int count=0; for (int i1=0;i1<string1.length(...原创 2019-07-01 19:24:08 · 98 阅读 · 0 评论 -
PAT 1071 Speech Patterns
注意判断是否为字母和数字的方式#include <iostream>#include <vector>#include<map>using namespace std;map<string,int > map1;void split(string& s){ int len=s.length(); string...原创 2019-06-25 20:50:59 · 134 阅读 · 0 评论