当前位置: 首页 > news >正文

网站开发毕业任务书东莞企业网站建设预算大概多少

网站开发毕业任务书,东莞企业网站建设预算大概多少,WordPress柒比贰主题下载,wordpress+订单号位数187. 重复的DNA序列 难度#xff1a;中等 题目 DNA序列 由一系列核苷酸组成#xff0c;缩写为 A, C, G 和 T.。 例如#xff0c;ACGAATTCCG 是一个 DNA序列 。 在研究 DNA 时#xff0c;识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 …187. 重复的DNA序列 难度中等 题目 DNA序列 由一系列核苷酸组成缩写为 A, C, G 和 T.。 例如ACGAATTCCG 是一个 DNA序列 。 在研究 DNA 时识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s 返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。 示例 1 输入s AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT 输出[AAAAACCCCC,CCCCCAAAAA]示例 2 输入s AAAAAAAAAAAAA 输出[AAAAAAAAAA]提示 0 s.length 10^5s[i]A、C、G or T 个人题解 思路 哈希逐个判断即可 class Solution {public ListString findRepeatedDnaSequences(String s) {ListString ansList new ArrayList();MapString, Boolean singleExistMap new HashMap();String temp;for (int left 0, right 10; right s.length(); left, right) {temp s.substring(left, right);if (singleExistMap.containsKey(temp) singleExistMap.get(temp)) {ansList.add(temp);singleExistMap.put(temp, Boolean.FALSE);}else if (!singleExistMap.containsKey(temp)){singleExistMap.put(temp, Boolean.TRUE);}}return ansList;} }官方题解 方法一哈希表 我们可以用一个哈希表统计 s 所有长度为 10 的子串的出现次数返回所有出现次数超过 10 的子串。 代码实现时可以一边遍历子串一边记录答案为了不重复记录答案我们只统计当前出现次数为 2 的子串。 class Solution {static final int L 10;public ListString findRepeatedDnaSequences(String s) {ListString ans new ArrayListString();MapString, Integer cnt new HashMapString, Integer();int n s.length();for (int i 0; i n - L; i) {String sub s.substring(i, i L);cnt.put(sub, cnt.getOrDefault(sub, 0) 1);if (cnt.get(sub) 2) {ans.add(sub);}}return ans;} }复杂度分析 时间复杂度O(NL)N是字符串 s 的长度L 10 即目标子串的长度空间复杂度O(NL) 方法二哈希表 滑动窗口 位运算 由于 s 中只含有 4 种字符我们可以将每个字符用 2 个比特表示即 A 表示为二进制 00C 表示为二进制 01G 表示为二进制 10T 表示为二进制 11 如此一来一个长为 10 的字符串就可以用 20 个比特表示而一个 int 整数有 32 个比特足够容纳该字符串因此我们可以将 s 的每个长为 10 的子串用一个 int 整数表示只用低 20 位。 注意到上述字符串到整数的映射是一一映射每个整数都对应着一个唯一的字符串因此我们可以将方法一中的哈希表改为存储每个长为 10 的子串的整数表示。 如果我们对每个长为 10 的子串都单独计算其整数表示那么时间复杂度仍然和方法一一样为O(NL)。为了优化时间复杂度我们可以用一个大小固定为 10 的滑动窗口来计算子串的整数表示。设当前滑动窗口对应的整数表示为 x 当我们要计算下一个子串时就将滑动窗口向右移动一位此时会有一个新的字符进入窗口以及窗口最左边的字符离开窗口这些操作对应的位运算按计算顺序表示如下 滑动窗口向右移动一位x x 2由于每个字符用 2 个字符表示所以要左移 2 位一个新的字符 ch 进入窗口x x | bin[ch] 这里的 bin[ch] 为字符 ch 的对应二进制窗口最左边的字符离开窗口x x ((1 20) - 1) 由于我们只考虑 x 的低 20 位比特需要将其余位置零即与上 (1 20) - 1 将这三步合并就可以用 O(1) 的时间计算出下一个子串的整数表示即 x (( x 2) | bin[ch]) (1 20) - 1) class Solution {static final int L 10;MapCharacter, Integer bin new HashMapCharacter, Integer() {{put(A, 0);put(C, 1);put(G, 2);put(T, 3);}};public ListString findRepeatedDnaSequences(String s) {ListString ans new ArrayListString();int n s.length();if (n L) {return ans;}int x 0;for (int i 0; i L - 1; i) {x (x 2) | bin.get(s.charAt(i));}MapInteger, Integer cnt new HashMapInteger, Integer();for (int i 0; i n - L; i) {x ((x 2) | bin.get(s.charAt(i L - 1))) ((1 (L * 2)) - 1);cnt.put(x, cnt.getOrDefault(x, 0) 1);if (cnt.get(x) 2) {ans.add(s.substring(i, i L));}}return ans;} }复杂度分析 时间复杂度O(N)N是字符串 s 的长度空间复杂度O(N)
http://www.dnsts.com.cn/news/129913.html

相关文章:

  • 网站的注册上一步下一步怎么做网站建设副业
  • 东莞网站建没电子商务网站开发数据库表格
  • 公司网站建设方案拓扑图百度开放平台登录
  • 做视频网站技术壁垒在哪里做不锈钢的网站有哪些
  • 绵阳网站推广优化有关建筑网站建设方案
  • 怎么用mvc架构做网站网页游戏怎么在手机上玩
  • 有没有个人做的网站赚流量费网页设计100个经典案例
  • 反恶意镜像网站网络游戏网站建设论文
  • 网站流量创建公司网站难吗
  • 如何自建网站入口佛山网站推广seo
  • 自己搭建视频播放网站韩国能否出线
  • 优秀网站建设外贸营销方式有哪些
  • 门户网站的营销特点视觉设计软件
  • 长春哪有做网站公司wordpress站点跟换域名
  • 邢台网站网页设计网站建设重要新
  • 兰州做网站或小程序外贸和网站制作
  • 顺德高端网站吉隆坡建设大学中文网站
  • 广州奕联网站开发研究生院 网站 建设
  • 网站推广定义响应式网站建设有哪些好处
  • 淘宝网站建设教程视频教程北京中风险地区
  • 电子商务网站建设需要知识高端网站设计建设
  • 网站建设合同定义手机网站logo
  • 网站二级目录解析做网站学哪方面知识
  • 做感恩网站的图片素材汕头网页
  • 网站的主流趋势多个网站如何做301
  • 杭州婚恋网站建设重庆微信网站建设多少钱
  • 建设网站构成建设厅网站ca验证失败
  • 做3D打印样品用什么外贸网站好苏州好的做网站的公司哪家好
  • 如何制作网页网站四川省自贡市大安区代码
  • 网站建设中企动力上海营销型网站模板