洞察纵观鸿蒙next版本,如何凭借FinClip加强小程序的跨平台管理,确保企业在数字化转型中的高效运营和数据安全?
596
2022-11-10
输入一个字符串,找出其中不含有重复字符的最长子串的长度。
用到的方法: 1、charAt() 方法可返回指定位置的字符。 提示和注释 注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
2、java.lang.String.contains()方法返回true,当且仅当此字符串包含指定的char值序列
3、math.max(a, b ,c, d,…)返回最大的那个数字,其中比较的参数可以任意个
输入一个字符串,找出其中不含有重复字符的最长子串的长度。 例:aabbccdd ab是子串、abcd是子序列
package com.zheng.demo7;import java.util.HashSet;import java.util.Scanner;class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println("请输入字符串:"); Scanner in = new Scanner(System.in); String str = in.nextLine(); System.out.println("输入的字符不重复最大个数:" + solution.lengthOfLongestSubstring(str)); } public int lengthOfLongestSubstring(String s) { int ans = 0; int rk = -1; HashSet hash = new HashSet();//保存字符 for (int i = 0; i < s.length(); i++) { //每一次循环,都从下一位开始 if (i != 0) { hash.remove(s.charAt(i - 1));//每遍历一次,都将起始位置后移,此时先前保存的元素必定丢弃 } while (rk + 1 < s.length() && !hash.contains(s.charAt(rk + 1))) {//下移的元素在集合中不存在 hash.add(s.charAt(rk + 1)); rk++; } ans = Math.max(ans, rk - i + 1);//比较改变初始位置后的哪个不重复数据最多 } return ans; }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~