提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
提示:这里可以添加本文要记录的大概内容:
2月26日练习内容
提示:以下是本篇文章正文内容,下面案例可供参考
一、题目1-无重复字符的最长子串
1.题目描述
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.思路与代码
2.1 思路
1.使用两个指针i和index,
2.最开始的时候两个指针都指向第一个元素,然后i往后移,把扫描过的元素都放到map中,
3.如果i扫描过的元素没有重复的就一直往后移,记录最大值max,
4.如果i扫描过的元素有重复的,就更新index的位置,
5.最后遍历完字符串,输出最大值
2.2 代码
代码如下(示例):
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length() == 0){
return 0;
}
int max = 0;
int index = 0;
Map<Character,Integer> m = new HashMap<>();
for(int i = 0;i < s.length();i ++){
//如果右重复元素则更新index的值
if(m.containsKey(s.charAt(i))){
index = Math.max(index,m.get(s.charAt(i)) + 1);
}
m.put(s.charAt(i), i);
max = Math.max(max,i - index + 1);
}
return max;
}
}
二、题目2-最长回文子串
1.题目描述
给你一个字符串 s,找到 s 中最长的回文子串。
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.思路与代码
2.1 思路
1.先判断输入的字符串长度是否大于2,如果不大于2,则直接输出该字符串
2.使用暴力求解的方法,两个for循环遍历字符串,并判断所取部分是否为回文串,直到遍历完成
2.2 代码
代码如下(示例):
class Solution {
public String longestPalindrome(String s) {
int length = s.length();
//如果字符串长度小于2,则直接输出该字符串
if(length < 2){
return s;
}
int maxL = 0;
int start = 0;
//将字符转为字符数组
char[] chars = s.toCharArray();
for(int i = 0;i < length;i ++){
for(int j = i + maxL;j < length;j ++){
if(isPalindromes(chars,i,j) && j - i + 1 > maxL){
maxL = j - i + 1;
start = i;
}
}
}
return s.substring(start,start + maxL);
}
//判断是否回文串
public boolean isPalindromes(char[] chars,int left,int right){
while(left < right){
if(chars[left] != chars[right]){
return false;
}
left ++;
right --;
}
return true;
}
}
总结
提示:这里对文章进行总结: