![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
Taohongfei_huster
这个作者很懒,什么都没留下…
展开
-
KMP算法
https://www.cnblogs.com/yjiyjige/p/3263858.html原创 2018-09-22 22:57:12 · 75 阅读 · 0 评论 -
394. Decode String
public class Solution { public String decodeString(String s) { String res = ""; Stack<Integer> countStack = new Stack<>(); Stack<String> resStack = new...原创 2018-12-11 21:06:03 · 116 阅读 · 0 评论 -
5. Longest Palindromic Substring&&647. Palindromic Substrings
诚然,不言暴力法。动态规划和中心扩展法较为合适。 class Solution { public String longestPalindrome(String s) { int n = s.length(); String res = ""; boolean[][] dp = new boolean[n][n]; for (int i =n; ...原创 2018-12-27 20:20:27 · 128 阅读 · 0 评论 -
438. Find All Anagrams in a String
最简单的办法是比较s中每一个长度与p相同的字串与p是否一样。 class Solution { public List<Integer> findAnagrams(String s, String p) { List<Integer> re=new ArrayList<>(); if(s.length()<p...原创 2018-12-19 21:27:08 · 99 阅读 · 0 评论 -
227. Basic Calculator II
public class Solution { public int calculate(String s) { int len; if(s==null || (len = s.length())==0) return 0; Stack<Integer> stack = new Stack<Integer>(); int num = 0...原创 2018-11-16 16:32:48 · 166 阅读 · 0 评论 -
242. Valid Anagram
判断给定两个字符串是否为相同字母不同排列的单词。方法有两个: 一、最简单的办法就是调用排序函数sort给两个字符串s和t排序,然后比较是否相等即可,复杂度为O(nlogn); class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.lengt...原创 2018-11-08 16:51:43 · 89 阅读 · 0 评论 -
224. Basic Calculator
class Solution { public int calculate(String s) { int len = s.length(), sign = 1, result = 0; Stack<Integer> stack = new Stack<Integer>(); for (int i = 0; i < len; i++) ...原创 2018-11-13 19:17:47 · 91 阅读 · 0 评论 -
5.Longest Palindrome Substring
中心扩展法,依次遍历每个字符。 class Solution { // // 思路1: DP。这种思路就是尝试所有可能的palin的长度, [0, len], 遍历左右的[i,j]组合,找出其中最长的回文串。 // public String longestPalindrome(String s) { // // corner ...原创 2018-10-25 17:12:01 · 164 阅读 · 0 评论 -
3. Longest Substring Without Repeating Characters
题目要求最大的不重复字串的长度。很明显,滑动窗口法可以很好地解决:i,j为滑动窗口的界,从j开始进行索引,如果charAt(j)出现在substring(i,j+1)中,记出现的位置为j',将i变为j'+1,计算长度。 方法一:运用数组,一步一步地移动i到指定位置。(先计数,再判断) class Solution { public int lengthOfLongestSubst...原创 2018-10-07 18:32:19 · 94 阅读 · 0 评论 -
621. Task Scheduler
这是任务调度问题,需要满足的条件是相同任务之间的间隔为n,求最小的完成任务的总时间。 大概思路呢,就是,首先统计出每个字母出现的频率,保存到count数组中,之后排序,从小到大升序排序,也就是数组中的最后一个频率是出现次数最多的频率,最大频率,也就是count[25]。 我们要做的是在出现频率最多的那个字母比如A,中间插空,相邻的两个A中间需要插入(n-1)个字母(也包括 待命 命令),...原创 2018-12-25 15:10:59 · 149 阅读 · 0 评论