187. 重复的DNA序列

该博客记录了作者利用Java解决SQL题目中关于查找重复DNA序列的问题。通过使用HashSet来存储DNA序列,遍历输入字符串并检查子串是否已存在于集合中,从而找出重复的10个碱基序列。博客提供了测试代码并展示了输出结果。
摘要由CSDN通过智能技术生成
  1. 重复的DNA序列

Sql中突然出现了一题Java,应该很鬼畜吧,就给他做了。开始做本题目的时候没什么思路,后来看评论区才了解,感谢评论区的大佬,发此篇博客只是记录学习成果。

思路:由于Set中不存放重复的元素,所以可以使用Set。通过判断HashSet的存在元素来进行区分。本题的题意是解决任意长度相同的问题,本题中以定长10来解决。具体题目如下。

在这里插入图片描述

测试代码如下:

package com.leecode.Study;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class Dna {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<String> s = findRepeatedDnaSequences("AAAAAAAAAAAAA");
		for(String a:s) {
			System.out.println(a);
		}
	}
	
	    public static List<String> findRepeatedDnaSequences(String s) {
	    	int len = s.length();
	    	Set<String> aHashSet = new HashSet<String>();
	    	Set<String> res = new HashSet<String>();
//	    	if (s.substring(0, len / 2).equals(s.substring(len / 2,len))) {
//				res.add(s);
//				System.out.println(res.toString());
//				return new ArrayList<>(res);
//			}
	    	for (int i = 0; i <= len - 10; i++) {
	    		String tempString = s.substring(i,i + 10);
				if (aHashSet.contains(tempString)) {
					res.add(tempString);
				}else {
					aHashSet.add(tempString);
				}
			}
	    	return new ArrayList<>(res);
	    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值