前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 30 Substring with Concatenation of All Words

LeetCode 30 Substring with Concatenation of All Words

作者头像
ShenduCC
发布2019-07-18 16:50:45
2690
发布2019-07-18 16:50:45
举报
文章被收录于专栏:算法修养算法修养

题目

食之无味的题目

class Solution {
public:
    map<string,int> m;
    map<int,string> m2;
    map<string,int> m3;
    int b[100005];
    int c[100005];
    vector<int> findSubstring(string s, vector<string>& words) {
        
        
        vector<int> ans;
        if(words.size()==0)
            return ans;
        if(s.length()==0)
            return ans;
         for(int i=0;i<words.size();i++)
         {
             m[words[i]]++;
         }
        
        int len = words[0].length();
        int index=0;
         for(int i=0;i<s.length();i++)
         {
             string a="";
             for(int k=i;k<i+len && k<s.length();k++)
             {
                 a+=s[k];
             }
             
             if(m[a]!=0)
             {
                 b[i]=m[a];
                 m2[i]=a;
                 c[index++]=i;
             }
         }
        
         for(int i=0;i<index;i++)
         {
             m3.clear();
             m3[m2[c[i]]]++;
             int j=i;
             int k=i+1;
             int x=1;
             int tag=1;
             
             if(s.length()-c[i] < len * words.size())
                 break;
             while(j<index&&k<index)
             {
                 if(c[k]-c[j]<len)
                 {
                    k++;
                    continue;
                 }
                 else if(c[k]-c[j]==len)
                 {
                     int y=++m3[m2[c[k]]];
                     if(y>m[m2[c[k]]])
                     {
                         tag=0;
                         break;
                     }
                     else
                     {
                         x++;
                         j=k;
                         k++;
                         if(x==words.size())
                         {
                             tag=1;
                             break;
                         }
                     }
                 }
                 else{
                     break;
                 }
             }
             if(x<words.size())
             {
                 tag=0;
             }
             
             if(tag==1)
                 ans.push_back(c[i]); 
         }
        
        return ans;
        
    }
    
   
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档