剑指 Offer 48. 最长不含重复字符的子字符串 Offer_48 题目详情 解法分析 解法一:动态规划+哈希表 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/8 20:52 */ import java.util.HashMap; /** * 题目描述:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. */ public class Offer_48 { publ…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含从'a'到'z'的字符. 思路 动态规划法:定义函数f(i)为:以第i个字符为结尾的不含重复字符的子字符串的最大长度. (1)当第i个字符之前未出现过,则有:f(i)=f(i-1)+1 (2)当第i个字符之前出现过,记该字符与上次出现的位置距离为d 1)如果d<=f(i-1…
题目信息 时间: 2019-07-02 题目链接:Leetcode tag: 动态规划 哈希表 难易程度:中等 题目描述: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1…
题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 示例3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 &qu…
题目: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含’a~z”的字符.例如,在字符串“arabcacfr"中,最长的不含重复字符的子字符串是“acfr”,长度为4. 题解: 方法一: 使用滑动窗口函数[借助string中的find函数] 方法二: 使用动态规划 //方法一:使用移动窗口 string getLenghtSubstr(const string &str) { )return str; string res, temp; ,…
/* 题目: 最长不含重复字符的子字符串. */ /* 思路: f(i) = f(i-1) + 1,(未出现过当前字符,distance > f(i-1) distance,当前字符和上一次出现该字符的距离 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> using namespace std; int longestSubstringWithou…
Given a string, find the length of the longest substring without repeating characters.(请从子字符串中找出一个最长的不包含重复字符的子字符串) 首先定义函数f(i)表示以第i个字符结尾的不包含重复字符的子字符串的最大长度.我们从左到右扫描字符串中的每个字符.当我们计算第i个字符时,我们已经知道了f(i-1).如果第i个字符之前在字符串中没有出现过,那么f(i)=f(i-1) + 1,显然f(0)=1.如果第i个…
问题描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.   示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3. 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1. 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串…
// 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度.假设字符串中只包含从'a'到'z'的字符. #include <string> #include <iostream> // 方法一:蛮力法 //不想说话 // 方法一:动态规划 int longestSubstringWithoutDuplication_2(const std::string& str) { ;//记录当前长度…
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含'a'~'z'的字符.例如,在字符串"arabcacfr"中,最长的不含重复字符的子字符串是"acfr",长度为4. 牛客网刷题地址 思路分析 动态规划算法.首先定义函数f(i)表示以第i个字符为结尾的不包含重复字符的子字符串的最长长度.我们从左到右逐扫描字符串中的每个字符.当我们计算以第i个字符为结尾的不包…