回文系列
寻找回文串 –> 双指针从两端向中间逼近
寻找一个字符串中最大回文串 –> 寻找以s[left]和s[right]为中心的最长回文串 (中间向两端逼近)
判断回文单链表思路1:将单链表的值放到数组中,然后通过数组来判断
思路2:反转单链表,判断两个链表是否完全相同
思路3:利用二叉树后序遍历思路
123456789101112131415161718ListNode left=null;public boolean isPalindrome(ListNode head) { // 方法1:将单链表反转成新的链表 // 方法2:将单链表的值放到数组中,通过数组来判断 // 方法3:利用二叉树后续遍历思路 left=head; return traverse(head);}public boolean traverse(ListNode right){ if(right==null){ return true; } boolean res= traver ...
滑动窗口算法
滑动窗口伪代码
123456789101112131415161718192021void slidingWindow(String s){ HashMap<int,char> map; int left=0; int right=0; while(right<s.length){ // 将该字符移入窗口 char c=s[right]; right++; //增大窗口 // 进行窗口内数据的一系列更新 ... // 判断左侧窗口是否要收缩 while (window needs shrink) { // d 是将移出窗口的字符 char d = s[left]; // 缩小窗口 left++; // 进行窗口内数据的一系列更新 ... } } }
例:力扣第 76 题最小覆盖子串
...
Java中的字符串类
String 不可变的字符串String类部分源码如下:
123456789101112131415161718192021public final class String // 可序列化 // 可比较大小 implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; //数组元素不可修改(final) /** Cache the hash code for the string */ private int hash; // Default to 0 public String concat(String str) { if (str.isEmpty()) { return this; } ...




