题解 | #重复的DNA序列#

重复的DNA序列

http://www.nowcoder.com/practice/fe9099e5308042a8af2f7aabdb3719fe

哈希

  • umap存放字符串第一次出现的首字符下标
  • umap1存放重复出现的字符串 并且map自带自带 key 的升序排列,解决先后问题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param DNA string字符串 1
     * @return string字符串vector
     */
    vector<string> repeatedDNA(string DNA) {
        // write code here
        if(DNA.length()<10)return {};
        if(DNA.length()==10)return {DNA};
        vector<string>ans;
        map<string, int>umap;
      	map<int, string>umap1;
        string s = DNA.substr(0, 10);
        umap[s]=0;
        for(int i=1; i<=DNA.length()-10; i++){
            s = DNA.substr(i, 10);
            if(umap.count(s) && !umap1.count(umap[s])){
                umap1[umap[s]] = s;
            }
            else umap[s] = i;
        }
        for(auto it=umap1.begin(); it!=umap1.end(); it++){
            ans.push_back(it->second);
        }
        return ans;
    }
};
全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务