![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
String
puspos
这个作者很懒,什么都没留下…
展开
-
567. 字符串的排列
问题例子思路方法1 O(n^2)$$$$方法2 O(n)且空间复杂度使用两个数组,不像方法1,用好多个【比较一次用一个】$$$$滑动窗口,窗口大小为s1.length(),向前滑动窗口时,把i-s1.length()下标的影响消去代码//方法1class Solution { public boolean check(int[] arr,...原创 2020-04-01 19:41:01 · 108 阅读 · 0 评论 -
最长公共子序列_最长公共子串
最长公共子串int m = s.length(),n=s2.length();int[][] dp = new int[m+1][n+1];int max_=0;for(int i=1; i<=m; i++) { for(int j=1; j<=n; j++) { //第i个字符,下标是i-1 if(s.charAt(i-1)==s2....原创 2020-03-22 20:39:38 · 106 阅读 · 0 评论 -
1143. 最长公共子序列_583. 两个字符串的删除操作
问题给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。例子思路方法1动态规划方法2代码//方法1class Solution { public int minDistance(String word1, String word2) { int m=...原创 2020-03-22 18:05:19 · 110 阅读 · 0 评论 -
224. 基本计算器
问题实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -,非负整数和空格 。例子思路方法1中缀表达式->后缀表达式方法2代码//方法1class Solution { public int calculate(String s) { //获取后缀表达式(没有括...原创 2020-03-22 17:16:50 · 140 阅读 · 0 评论 -
227. 基本计算器 II
算法表达式:中缀表达式(A+(B-C/D)E)对应的前缀表达式是(+A-B/CDE)对应的后缀表达式为(ABCD/-E*+)中缀式正常的数学表达式前缀式 (波兰式)操作符在数字前面后缀式 (逆波兰式)操作符在数字后面问题例子思路方法1方法2代码//方法1//方法2...原创 2020-03-22 17:15:23 · 149 阅读 · 0 评论 -
计算_算术表达式字符串
算法表达式中缀表达式(A+(B-C/D)E)对应的前缀表达式是(+A-B/CDE)对应的后缀表达式为(ABCD/-E*+)中缀式正常的数学表达式前缀式 (波兰式)操作符在数字前面后缀式 (逆波兰式)操作符在数字后面中缀表达式->后缀表达式【括号去掉了】后缀表达式:List<String>,不能用sb,因为可能为42,不是单数1)如果遇到...原创 2020-03-22 17:12:43 · 612 阅读 · 0 评论 -
150. 逆波兰表达式求值
问题例子思路方法1遍历逆波兰表达式,如果是数字,放入栈中,如果是操作符,则从栈中取出两个树,操作后,再放入栈。最后栈中剩下一个元素方法2代码//方法1class Solution { public int evalRPN(String[] arr) { Stack<Integer> st = new St...原创 2020-03-22 11:51:52 · 80 阅读 · 0 评论 -
1071. 字符串的最大公因子
问题对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。例子思路方法1辗转相除法方法2代码//方法1class Solution { public String gcdOfStrings(Strin...原创 2020-03-22 11:05:23 · 99 阅读 · 0 评论 -
647. 回文子串
问题给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。例子思路类似leetcode 第5题方法1龙卷风法,找龙眼两种龙眼:一种bab,一种baab,即(i,i)和(i,i+1)方法2代码//方法1class Solution { private i...原创 2020-03-21 19:58:39 · 83 阅读 · 0 评论 -
49. 字母异位词分组
问题给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。例子思路map<String, List<String>>方法1方法2代码//方法1class Solution { public List<List<String>> groupAnagrams(String[] ...原创 2020-03-17 22:12:38 · 126 阅读 · 0 评论 -
205. 同构字符串_290. 单词规律
问题给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身例子思路方法1将两个字符串中的字符都映射到第三方数字上,将所有字母初始都映射到 0。如果相同下标时,对应的数字不一样,说明不是,立即返回false...原创 2020-03-16 20:59:09 · 171 阅读 · 0 评论 -
43. 字符串相乘
问题给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。例子思路num1=“123” num2=“45”方法1 不可取num1个num2相加,O(123个45相加) 时间复杂度过大方法2 O(mn) O(m+n)m=num1.length() n=num2.length()首先得到的数的最大...原创 2020-03-12 10:21:52 · 195 阅读 · 0 评论 -
151. 翻转字符串里的单词
问题给定一个字符串,逐个翻转字符串中的每个单词。例子思路代码class Solution { public String reverseWords(String s) { String[] arr = s.split(" "); List<String> list = new ArrayList<>(); ...原创 2020-03-08 21:02:25 · 80 阅读 · 0 评论 -
722. 删除注释
问题例子思路换行符’\n’是单字符字符串组合成一个完整的字符串,之间用\n隔开,然后遍历字符串,遇到//时,删除到\n, 遇到/,删除到/,最后的字符串再用\n分割开代码class Solution { public List<String> removeComments(String[] source) { StringBuilder sb =...原创 2020-03-08 20:54:53 · 376 阅读 · 0 评论 -
38. 外观数列
问题例子思路代码class Solution { public String countAndSay(int n) { String s = "1"; for(int i=2; i<=n; i++) { int c=1; StringBuilder sb = new Stri...原创 2020-03-06 19:55:06 · 111 阅读 · 0 评论 -
14. Longest Common Prefix [最长公共前缀]
描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”例子思路答案python def longestCommonPrefix(self, strs: List[str]) -> str: if len(strs)==0: return '' res = strs[0] for i...原创 2019-11-13 13:03:39 · 142 阅读 · 0 评论 -
28. Implement strStr() [实现strStr()]
描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。例子思路答案pythonclass Solution: def strStr(self, haystack: str, needle: str) ->...原创 2019-11-19 22:08:33 · 103 阅读 · 0 评论 -
8. String to Integer【字符串转换整数 (atoi)】
描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符...原创 2019-11-08 20:03:30 · 94 阅读 · 0 评论 -
125. Valid Palindromec [验证回文串]
回文串正读和反读都一样的字符串,比如“level”或者“noon”描述Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.Note: For the purpose of this problem, we defin...原创 2019-10-23 16:58:33 · 108 阅读 · 0 评论 -
387. 字符串中的第一个唯一字符_剑指offer-面试题50. 第一个只出现一次的字符
问题给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。例子思路map数组代码//map Map<Character,Integer> map = new HashMap<>(); for(int i=0; i<s.length(); i++) { ...原创 2020-03-05 21:28:58 · 138 阅读 · 0 评论 -
344. 反转字符串
问题例子思路代码class Solution { public void reverseString(char[] s) { int i=0,j=s.length-1; while(i<j) { char t=s[i]; s[i++]=s[j]; s[...原创 2020-03-05 21:20:25 · 324 阅读 · 0 评论 -
758. 字符串中的加粗单词
问题给定一个关键词集合 words 和一个字符串 S,将所有 S 中出现的关键词加粗。所有在标签 和 中的字母都会加粗。返回的字符串需要使用尽可能少的标签,当然标签应形成有效的组合。例如,给定 words = [“ab”, “bc”] 和 S = “aabcd”,需要返回 “aabcd”。注意返回 “aabcd” 会使用更多的标签,因此是错误的。注:words 长度的范围为 [0, ...原创 2020-03-01 17:47:10 · 1018 阅读 · 0 评论