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

怎么学网站建设谷歌seo推广

怎么学网站建设,谷歌seo推广,福州建设工程招投标信息网,怎么搭建自己的服务器给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”&am…

给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。

s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。

例如,如果 words = [“ab”,“cd”,“ef”], 那么 “abcdef”, “abefcd”,“cdabef”, “cdefab”,“efabcd”, 和 “efcdab” 都是串联子串。 “acdbef” 不是串联子串,因为他不是任何 words 排列的连接。
返回所有串联子串在 s 中的开始索引。你可以以 任意顺序 返回答案。

C++

class Solution {
public:string nstring(string str,int n){string result_str="";for( int i=0;i<n;i++ ){result_str.append(str);}return result_str;}unordered_map<string,int> list2map(vector<string>& temp_vector){unordered_map<string,int> result_map;for( string temp_str:temp_vector ){result_map[temp_str]++;}return result_map;}void refillmap(unordered_map<string,int>& result_map,unordered_map<string,int>& data_map){for( const auto& pair : result_map ){data_map[pair.first]=pair.second;}}vector<int> findSubstring(string s, vector<string>& words) {vector<int> res;int length = words[0].size();//the length of the word.int total_length=length*words.size();//the total length of the word.if( total_length>s.size() ){return res;}unordered_map<string,int> result_map=list2map(words);unordered_map<string,int> data_map;refillmap(result_map,data_map);string target_str="";if(1==data_map.size()){target_str=nstring(words[0],words.size());}int gap=length;for( int i=0;i<s.size();i++ ){if( s.size()-i<total_length){break;}int n=words.size();if(1==data_map.size()){gap=total_length;string current_str=s.substr(i,gap);    if(current_str==target_str){res.push_back(i);}}else{int a=i;int b=a+(words.size()-1)*length;while( a<=b && n>0 && a<=s.size()-gap && b>=0 ){string current_str=s.substr(a,gap);string last_str=s.substr(b,gap);if(data_map[current_str]>0){data_map[current_str]--;n--;a=a+gap;}else{break;}if(data_map[last_str]>0){data_map[last_str]--;n--;b=b-gap;}else{break;}}if(n<words.size() &&(s.size()-i-1)>=total_length){refillmap(result_map,data_map);}if(0==n){res.push_back(i);}}}return res;}
};

时间复杂度

O ( N ∗ M ) O(N*M) O(NM)

空间复杂度

O ( N ) O(N) O(N)

Java

class Solution {Map<String,Integer> list2map(String [] words){Map<String,Integer> result_map=new HashMap<String,Integer>();for( String str:words ){if(result_map.containsKey(str)){result_map.put(str,result_map.get(str)+1);}else{result_map.put(str,1);}}return result_map;}String nstring(String str,int n){StringBuilder strBuilder=new StringBuilder("");for( int i=0;i<n;i++ ){strBuilder.append(str);}return strBuilder.toString();}void refillmap(Map<String,Integer> result_map,Map<String,Integer> data_map){Set<String> keys = result_map.keySet();for( String key:keys ){data_map.put(key,result_map.get(key));}}public List<Integer> findSubstring(String s, String[] words) {List<Integer> ans=new ArrayList<Integer>();int length=words[0].length();int total_length=words.length*length;if( s.length()<total_length ){return ans;}Map<String,Integer> result_map=list2map(words);Map<String,Integer> data_map=new HashMap<String,Integer>();refillmap(result_map,data_map);for( int i=0;i<s.length();i++ ){if( 1==data_map.size() && i+total_length<s.length() ){String targetString=nstring(words[0],words.length);String tempString=s.substring(i,i+total_length);if(targetString.equals(tempString)){ans.add(i);}}else{int a=i;int b=a+(words.length-1)*length;int n=words.length;while(a<=b && a<=s.length()-length && b<=s.length()-length && b>=0 ){String a_str=s.substring(a,a+length);String b_str=s.substring(b,b+length);if(data_map.containsKey(a_str)&&data_map.get(a_str)>0){data_map.put(a_str,data_map.get(a_str)-1);n--;a=a+length;}else{break;}if(data_map.containsKey(b_str)&&data_map.get(b_str)>0){data_map.put(b_str,data_map.get(b_str)-1);n--;b=b-length;}else{break;}}if(n<words.length){refillmap(result_map,data_map);}if(0==n){ans.add(i);}}}return ans;}
}

时间复杂度

O ( N ∗ M ) O(N*M) O(NM)

空间复杂度

O ( N ) O(N) O(N)

Python

class Solution:def list2map(self,words: List[str]):result_map={};for str in words:result_map[str]=result_map.get(str,0)+1;return result_map;def refillmap(self,result_map):data_map={};keys=result_map.keys();for str in keys:data_map[str]=result_map[str]return data_map;def nstring(self,str,n):result_str="";for i in range(n):result_str=result_str+str;return result_str;def findSubstring(self, s: str, words: List[str]) -> List[int]:ans=[];length=len(words[0]);total_length=len(words)*length;result_map=self.list2map(words);data_map=self.refillmap(result_map);for i in range(len(s)):if 1==len(data_map) and (i+total_length<=len(s)):target_str=self.nstring(words[0],len(words));current_str=s[i:i+total_length];if target_str==current_str:ans.append(i);else:a=i;b=a+(len(words)-1)*length;n=len(words);while a<=b and a<=len(s)-length and b>=0 and b<=len(s)-length:a_str=s[a:a+length];b_str=s[b:b+length];if a_str in data_map and data_map.get(a_str)>0:data_map[a_str]=data_map.get(a_str)-1;n=n-1;a=a+length;else:break;if b_str in data_map and  data_map.get(b_str)>0:data_map[b_str]=data_map.get(b_str)-1;n=n-1;b=b-length;else:break;if n<len(words):data_map=self.refillmap(result_map);if 0==n:ans.append(i);return ans;

时间复杂度

O ( N ∗ M ) O(N*M) O(NM)

空间复杂度

O ( N ) O(N) O(N)

http://www.dtcms.com/wzjs/269892.html

相关文章:

  • 网站维护与建设合同百度站长社区
  • 阿里巴巴网站网络营销的影响安卓优化大师下载安装到手机
  • 网站招聘怎么做网络推广服务协议
  • 公司做网站怎么做账谷歌 google
  • 如何做的网站手机可以用吗电脑版百度入口
  • erp供应链管理系统湖北seo公司
  • 一个app网站百度seo公司一路火
  • 网站描本链接怎么做网站推广四个阶段
  • 高端网站设计优化建站企业网站seo排名优化
  • 在线教育网站做老师靠谱不太原seo
  • 网上做网站搜狐视频
  • 简述制作网站的流程百度app下载
  • 怎么查询网站建设时间怎么做网站排名
  • 软件网站怎么做手机如何建网站
  • 一个网站的成本北京有限公司
  • 深圳市建设交易网站aso优化违法吗
  • 网站建设与优化标准西安关键词快速排名
  • 开发企业网站多少钱真正的免费建站在这里
  • 净水器公司网站源码爱链接
  • 如何学习网站制作郑州seo外包费用
  • 企业网站收费市场调研与分析
  • 各大招聘网站收费标准软文代写平台
  • 网站建设 引导seo建设招商
  • 常德网站建设开发公司品牌策划书
  • 湖南省郴州市疫情最新情况网站推广排名优化
  • 合肥高端网站建设设计公司国外搜索引擎大全不屏蔽
  • 关于网页设计的论文题目昆明seo
  • 做3D打印样品用什么外贸网站好信息流广告投放工作内容
  • 静态网页设计制作心得关键词seo公司真实推荐
  • 餐饮网站建设公司seo站长查询