当前位置: 首页 > news >正文

寻找符合要求的最长子串

题目描述

给定一个字符串 s s s ,找出这样一个子串:

1)该子串中的任意一个字符最多出现2次;

2)该子串不包含指定某个字符;

请你找出满足该条件的最长子串的长度。

输入描述:

第一行为要求不包含的指定字符,为单个字符,取值范围 [ 0 − 9 a − z A − Z ] [0-9a-zA-Z] [09azAZ]

第二行为字符串 s s s,每个字符范围 [ 0 − 9 a − z A − Z ] [0-9a-zA-Z] [09azAZ],长度范围 [ 1 , 10000 ] [1,10000] [1,10000]

输出描述

一个整数,满足条件的最长子串的长度;如果不存在满足条件的子串,则返回0

测试用例:
输入:

D
abc123

输出:

6

输入:

D
abaca123D

输出:

7

题解

使用 left right 指针遍历数组
使用 int[] 记录字符出现次数

源码 Java

public class RightSubStr {static Input input;static {input = new Input("D\n" +"abaca123D");}public static void main(String[] args) {char ch = input.nextLine().charAt(0);String s = input.nextLine();int left = 0;int right = 0;int[] charcount = new int[128];int max = 0;boolean flag = true;while (right < s.length()) {if (ch == s.charAt(right)) {charcount = new int[128];right++;left = right;} else {if (flag) {charcount[s.charAt(right)]++;}if (charcount[s.charAt(right)] > 2) {charcount[s.charAt(left)]--;left++;flag = false;continue;}flag = true;right++;max = Math.max(max, right - left);}}System.out.println(max);}
}
http://www.lryc.cn/news/476851.html

相关文章:

  • 【vim文本编辑器gcc编译器gdb调试器】
  • 解决使用Golang的email库发送qq邮件报错short response,错误类型为textproto.ProtocolError
  • 为什么说高级工程师研究的不仅是器件的稳态,模拟器件的开关过程
  • Matlab实现白鲸优化算法(BWO)求解路径规划问题
  • SQLserver索引的优化和使用
  • Linux 安装nacos
  • 水仙花判断
  • 在VS中安装chatGPT
  • 算法笔记:Day-09(初始动态规划)
  • “探索未来医疗:生成式人工智能在医疗领域的革命性应用“
  • 数字IC后端实现Innovus 时钟树综合(Clock Tree Synthesis)典型案例
  • Matlab应用制作入门
  • 什么是声明式编程什么是函数式编程,打比方说明
  • SpringBoot+Shiro权限管理
  • 前端面试题22 | 什么是跨域问题?怎么解决?
  • HarmonyOS Next星河版笔记--界面开发(3)
  • 科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)
  • 对象的接口与设计模式在其中的作用
  • 如何自学机器学习?
  • python中应该使用while 1吗?按位运算符可以代替逻辑运算符使用吗?
  • 线程ID和线程库
  • 使用AWS Lambda构建无服务器应用程序
  • 响应式网页设计案例
  • 麦麦Docker笔记(一)
  • 【设计模式系列】总览
  • P11118 [ROI 2024 Day 2] 无人机比赛 题解
  • 时序数据库是什么:概念、特点与分类简析
  • 大数据上岗.入职.就业面试题
  • 2016年7月和8月NASA的气候成像(ATom)-1飞行活动期间测量的黑碳(BC)质量混合比(单位为ng BC / kg空气)
  • python opencv3