腾讯2019校招笔试题--DNA片段

牛牛从生物科研工作者那里获得一段字符串数据s,牛牛需要帮助科研工作者从中找出最长的DNA序列。DNA序列指的是序列中只包括‘A‘,‘T‘,‘C‘,‘G‘。牛牛觉得这个问题太简单了,就把问题交给你来解决。
例如: s = "ABCBOATER"中包含最长的DNA片段是"AT",所以最长的长度是2。

输入描述:
输入包括一个字符串s,字符串长度length(1 ≤ length ≤ 50),字符串中只包括大写字母(‘A‘~‘Z‘)。
输出描述:
输出一个整数,表示最长的DNA片段
输入例子1:
ABCBOATER
输出例子1:
2算法:双指针
#include<iostream>
#include<unordered_map>
#include<algorithm>
#include<string>
using namespace std;
int main(void){
    int res=0;
    string s;
    cin>>s;
    unordered_map<char,int>S,T;
    T[‘A‘]++,T[‘C‘]++,T[‘G‘]++,T[‘T‘]++;
    for(int i=0,j=0;i<s.size();i++){
        S[s[i]]++;
        while(j<=i&&T.find(s[i])==T.end())S[s[j++]]--;
        res=max(res,i-j+1);
    }
    cout<<res<<endl;
    return 0;
}

原文地址:https://www.cnblogs.com/programyang/p/11187984.html

时间: 2024-10-10 20:16:42

腾讯2019校招笔试题--DNA片段的相关文章

腾讯暑期实习笔试题 有趣的梅式砝码问题

无意间看到这样的一个题目,题目内容是: 用4个砝码称出1到40的重量的物体,这四个砝码的重量分别是多少?? 此处有一点必须注意,很多人一拿到题目(包括我自己),一下子就想到了二进制的解法,可是立刻就发现,二进制的40需要的位数大于4位,也就是说不靠谱. 更加值得注意的是,二进制的方法用在此处,相当于只是将砝码做加法,并未考虑减法,见过天平的同学都知道,砝码是可以和物体放在一边的.因此是可以做减法的. 看了大多数人的题解,提到了,这是一个"梅式砝码"的问题,首先:作出如下假设:(有点类似

网易2018校招笔试题-数组能不能满足重排列后任意相邻的元素积都是4的倍数

今天看了一下网易最新的校招笔试题: 小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}.牛博士给小易出了一个难题:     对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数.     小易现在需要判断一个数列是否可以重排之后满足牛博士的要求. 代码如下: 1 import java.util.Scanner; 2 3 /** 4 * Created by jy on 2017/9/9. 5

2015年阿里巴巴校招笔试题

校招找工作的同学,可以看看,非常有帮助! 推荐: http://gointernetgo.com/textinterview/bishi-2015-alibba [产品经理]阿里巴巴2015校园招聘笔试题 [研发工程师]阿里巴巴2015校园招聘笔试题 [研发工程师]阿里巴巴2015校园招聘笔试题2 [国际安全运营专员]阿里巴巴2015校园招聘笔试题1 [产品运营]阿里巴巴2015校园招聘笔试题1 [前端开发工程师]阿里巴巴2015校园招聘笔试题1 [前端开发工程师]阿里巴巴2015校园招聘笔试题

兆易创新2016年9月校招笔试题_IC设计/验证

还有器件岗位的笔试题: 1.CMOS中哪些制造步骤中用到了离子注入,需要注意哪些?2.有哪些薄膜制备方法?各有什么优缺点?3.COMS的制作步骤,简要叙述.4.载流子的输运方式有哪些,简要叙述.5.半导体中缺陷种类,杂质的类型,缺陷杂质的危害,如何避免杂质缺陷.6.为何固体有超导体,导体,半导体,绝缘体?7.缓变PN结和突变PN结区别,如何制作,有何应用?8.CMOS的IV特性曲线,各个阶段的意义,如何让器件有效工作?9.质量测试中的加速失效作用.10.氧化层的击穿过程,如何避免击穿?附加题:N

2015腾讯web前端笔试题

  1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站."; info +="拍拍网于2005年9月12日上线发布,"; info +="2006年3月13日宣布正式运营,"; info +="是目前国内第二大电子商务平台."; info=info.split(&quo

腾讯Online模拟笔试题

选择题部分 1.new和malloc的区别 http://blog.sina.com.cn/s/blog_6fc5bfa90100qgd7.html http://blog.sina.com.cn/s/blog_6fc5bfa90100qgd7.html 2.二路归并排序,选择排序,冒泡排序,插入排序 http://blog.csdn.net/hguisu/article/details/7776068 3.移动平均算法的中间结果用什么数据结构来存储 4.邻接多重表 http://blog.fi

腾讯2014实习生笔试题--德梅齐里亚克砝码问题

问题 珠宝商甲需要去鉴定一批41克以下的宝石(可能是41克以下不包括41克的任意重量),他只能携带一个天平和四个砝码去称重,请问他会携带那些重量的砝码?-----2014腾讯暑期实习生附加题第一题 解答: 首先给出问题的答案,聪明的人看到答案的形式就能猜到其中的规律:1,1*2+1=3,(1+3)*2+1=9,(1+3+9)*2+1=27. 德梅齐里亚克砝码问题问题描述: 一位商人有一个40磅的砝码,由于跌落在地而碎成4块.后来,称得每块碎片的重量都是整磅数,而且可以用这4块来称从1至40磅之间

互联网校招笔试题分享

Java 一些知识点 Object 有哪些方法 public 方法:getClass.equals(和==之间的区别).hashCode.toString.wait.notify protected 方法:clone.finalize private 方法:registerNatives,该方法作用是将不同平台C/C++实现的方法映射到Java中的native方法 public class Object { private static native void registerNatives()

校招笔试题

题目描述:给出m个字符串S1,S2,...,Sm和一个单独的字符串T.请在T中选出尽可能多的子串同时满足: 1)这些子串在T中互不相交. 2)这些子串都是S1,S2,...,Sm中的某个串. 问最多能选出多少个子串. 输入第一行一个数m(1≤m≤10),接下来m行,每行一个串.最后一行输入一个串T.输入中所有单个串的长度不超过100000,串中只会出现小写字母. 输出输出一个数,最多能选出多少串. 样例输入3aabacbbaac样例输出3 提示样例解释:把T中字符从1开始编号,用[L,R]表示从