/** * 题目: * All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". * When studying DNA, it is sometimes useful to identify repeated sequences within the DNA. * Write a function to find all the 10-letter-long sequences (substrings) that occur more than once in a DNA molecule. * Example: * Input: s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT" * Output: ["AAAAACCCCC", "CCCCCAAAAA"] * 解题思路: * 从字符串的第一个字符开始遍历,每次遍历10个元素为一组添加到set中,若添加不成功,则代表set中已经存在相同的10个元素, * 然后将其添加到repeated中,最后将repeated转换成list形式返回。 */ import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class FindRepeatedDnaSequence_187_1021 { public List<String> FindRepeatedDnaSequence(String s) { HashSet<String> set = new HashSet<>(); HashSet<String> repeated = new HashSet<>(); for (int i = 0; i + 9 < s.length(); i++) { String temp = s.substring(i, i + 10); if (!set.add(temp)) { repeated.add(temp); } } List<String> result = new ArrayList(repeated); return result; } public static void main(String[] args) { String s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"; FindRepeatedDnaSequence_187_1021 test = new FindRepeatedDnaSequence_187_1021(); List<String> result = test.FindRepeatedDnaSequence(s); System.out.println(result); } }
leetcode:(187) Repeated DNA Sequence(java)
最新推荐文章于 2023-02-25 23:03:36 发布