/** * 判断最长长度,最长字符串内容还没有做 * 1.循环遍历字符串 * 2.内层循环字符串,一个一个拼装放入集合中,如果有重复跳出循环 * 3.判断集合的长度,当前的和之前的做比较,保存最大的长度数值 * 4.移除集合中重复字符串,因为是挨个循环,所以移除掉最左边的数据即可,可变集合中始终下表为0的数据 */ public int lengthOfLongestSubstring1(String str) { //集合存放不重复数据 List<String> list = new ArrayList<>(); //下表使用,获取数据 int xb = 0, num = 0; //获取最大字符串长度,比较使用 //1.循环遍历字符串 for(int i=0; i<str.length(); i++) { //2.内层循环字符串,一个一个拼装放入集合中,如果有重复跳出循环 while(xb<str.length() && !list.contains(String.valueOf(str.charAt(xb)))) {//不确定长度,使用while循环 list.add(String.valueOf(str.charAt(xb))); //移动下标 xb++; } //3.判断集合的长度,当前的和之前的做比较,保存最大的长度数值 num = Math.max(num, list.size()); //移除重复数据,左边开始 if(i != 0) { list.remove(0); } } return num; }
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
最新推荐文章于 2023-03-15 09:31:29 发布