欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java找出两个字符串中所有共同的子串_【Java笔记】

发布时间:2025/4/16 java 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java找出两个字符串中所有共同的子串_【Java笔记】 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Leetcode 1.两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2]; //1.创建一个存放结果的数组res
HashMap<Integer,Integer> map = new HashMap<>(); //2.创建一个辅助的哈希表
for(int i = 0; i < nums.length; i ++){ //3.遍历
int tmp = target - nums[i]; //作差
if(map.containsKey(tmp)){ //判断
res[0] = map.get(tmp);
res[1] = i;
break;
}
map.put(nums[i],i);
}
return res; //返回
}
}

详细理解:

1.map重要用法[map.put() map.get() map.containsKey()]

放入数据一般形式 -----put(object key, object value)

例如:map.put(1,”a”)

===============================================================

根据key获取对应的value一般形式-------get(object key)

例如:map.get(1);//获取到对应的key=1时的value=a;

===============================================================

判断是否包含某个元素一般形式containsKey(object Key)//是否包含某个元素。一般配合put和get,实现匹配并修改map中的元素。

相关链接:

Java中HashMap的用法_eck_燃的博客-CSDN博客​blog.csdn.net

2.charAt()-----用于返回指定位置的字符

var str=”Hello World!”

document.write(str.charAt(1))

输出结果:e

Leetcode3.最长无重复子串长度

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

解法1:双指针遍历一次

  • 定义一个变量maxlen,记录不重复子串的最大长度
  • 定义一个哈希表,辅助遍历查询;
  • 定义一对左右指针,遍历字符串,对每一个字符做如下处理:
    • 判断该字符在不在map中,若存在,更新左边界max{L,c_index+1};
    • 将该字符及索引放到map中;
    • 更新maxLen = max {maxLen,R-L+1}

    4.返回maxLen

    总结

    以上是生活随笔为你收集整理的java找出两个字符串中所有共同的子串_【Java笔记】的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。