找出两个字符串中所有共同的字符_蹲在马桶看算法(Day11—LeetCode之NO.599两个列表的最小索引和)...

4704a4e8495da44fb8e59e0f5b80b169.png

题目概述:

给定两个字符串列表,找到两个列表中的公共字符串,并且满足两个相同字符串(列表公共字符串各自索引的和最小)的索引和最小。

思路:

1、首先两个列表中的公共字符串,最先想到的用set或者map。(具体操作是把第一个把一个列表list1中的全部字符串添加到set或map中。再遍历第二个列表list2。判断list2中的元素是不是在set或map中contain就好。)。 但是这里还有一个条件是“满足两个列表的索引和最少”。 所以使用map可以顺带记录一下索引。摒弃set。

2、找出共同的字符串的问题解决了。如何让其索引和最小呢(可以试着写一个求数组的最小值或者最大值的代码:这里说求最小值的思路,设置一个变量,假设其是最小值,跟数组中的每一个元素比较,如果数组中的元素还有比它小的,用当前元素替换掉最小值的值即可,如此直到数组遍历完成)?下面贴一下代码

0dbc22edcd4eb42d8bc4d6667ae3e12f.png
public class FindRestaurant {public String[] findRestaurant(String[] list1,String[] list2) {if (list1==null||list1.length==0||list2==null||list2.length==0) return null;Map map=new HashMap<>();List help=new LinkedList<>();for(int i=0;i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值