这道题是LeetCode里的第984道题. 题目要求: 给定两个整数 A 和 B,返回任意字符串 S,要求满足: S 的长度为 A + B,且正好包含 A 个 'a' 字母与 B 个 'b' 字母: 子串 'aaa' 没有出现在 S 中: 子串 'bbb' 没有出现在 S 中. 示例 1: 输入:A = 1, B = 2 输出:"abb" 解释:"abb", "bab" 和 "bba" 都是正确答案. 示例 2: 输入:A =…
目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(String Pool) 4. String类所用的连接符 5. String类的主要作用(简) 正文 1. String类是什么 1.1 定义 String类表示字符串.Java程序中的所有字符串都是这个String的实例,比如"abc".字符串为常数,它们的值在创建之后不能更改.因为字符…
本文参考自<剑指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…
// 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度.假设字符串中只包含从'a'到'z'的字符. #include <string> #include <iostream> // 方法一:蛮力法 //不想说话 // 方法一:动态规划 int longestSubstringWithoutDuplication_2(const std::string& str) { ;//记录当前长度…
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含'a'~'z'的字符.例如,在字符串"arabcacfr"中,最长的不含重复字符的子字符串是"acfr",长度为4. 牛客网刷题地址 思路分析 动态规划算法.首先定义函数f(i)表示以第i个字符为结尾的不包含重复字符的子字符串的最长长度.我们从左到右逐扫描字符串中的每个字符.当我们计算以第i个字符为结尾的不包…
题目: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含’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…
剑指 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…
switch的case语句可以处理int,short,byte,char类型的值, 因为short,byte,char都会转换成int进行处理,这一点也可以从生成的字节码看出. char a = 'e'; switch (a) { case 'c': System.out.println("In case c"); break; case 'd': System.out.println("In case d"); break; default: System.out…
Given two integers A and B, return any string S such that: S has length A + B and contains exactly A 'a' letters, and exactly B 'b' letters; The substring 'aaa' does not occur in S; The substring 'bbb' does not occur in S. Example 1: Input: A = 1, B…