本文主要是介绍leetcode:(187) Repeated DNA Sequence(java),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*** 题目:* 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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!