[LeetCode]Substring with Concatenation of All Words
来源:互联网 发布:开源cms系统排名 编辑:程序博客网 时间:2024/05/16 10:51
Total Accepted: 42899 Total Submissions: 215720 Difficulty: Hard
You are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concatenation of each word in wordsexactly once and without any intervening characters.
For example, given:
s: "barfoothefoobarman"
words: ["foo", "bar"]
You should return the indices: [0,9]
.
(order does not matter).
Subscribe to see which companies asked this question
这个题目是一个非常让人蛋疼的事情,提交了好多次都是超时。尽量在各个地方节约时间
上代码
import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class Solution {public List<Integer> findSubstring(String s, String[] words) {List<Integer>result = new ArrayList<>();HashMap<String, Integer>hashMap=new HashMap<>();HashMap<String, Integer>curHashMap=new HashMap<>();if(words.length==0||s.length()<words[0].length())return result;int len=words[0].length();for(int i=0;i<words.length;i++){Integer count = hashMap.get(words[i]);if(count==null){hashMap.put(words[i], 1);}else{hashMap.put(words[i],count+1);}}//因为题目中要求words中所有的词都出现一变,所以i的范围要控制,减小循环次数for(int i = 0;i<=s.length()-len*words.length;i++){int j;curHashMap.clear();for(j=0;j<words.length;j++){String word = s.substring(i+j*len,i+(j+1)*len);if(!hashMap.containsKey(word)){break;}Integer count = curHashMap.get(word);if (count==null) {curHashMap.put(word, 1);}else{curHashMap.put(word,count+1);//这里用的是+号,如果用hashmap-1的话会超时}if(curHashMap.get(word)>hashMap.get(word)){break;}}if(j==words.length){result.add(i);}} return result; } public static void main(String[]args){ Solution solution = new Solution(); System.out.println(solution.findSubstring("aaaa",new String[]{"aa","aa"})); }}
0 0
- LeetCode: Substring with Concatenation of All Words
- LeetCode : Substring with Concatenation of All Words
- [Leetcode] Substring with Concatenation of All Words
- [LeetCode]Substring with Concatenation of All Words
- LeetCode-Substring with Concatenation of All Words
- [LeetCode] Substring with Concatenation of All Words
- LeetCode:Substring with Concatenation of All Words
- Leetcode: Substring with Concatenation of All Words
- [LeetCode] Substring with Concatenation of All Words
- leetcode Substring with Concatenation of All Words
- leetcode Substring with Concatenation of All Words
- LeetCode Substring with Concatenation of All Words
- LeetCode | Substring with Concatenation of All Words
- LeetCode - Substring with Concatenation of All Words
- Substring with Concatenation of All Words -- LeetCode
- Leetcode: Substring with Concatenation of All Words
- leetcode:Substring with Concatenation of All Words
- LeetCode|Substring with Concatenation of All Words
- Define Projection与Project工具的区别
- Ubuntu下创建新用户
- Android Drawable 那些不为人知的高效用法
- SharePoint 2010 Configuration Failed
- iOS开发之UITextView,设置textView的行间距及placeholder
- [LeetCode]Substring with Concatenation of All Words
- 排序算法之希尔排序
- 虚拟机无法安装成功,MSI错误
- LaTex中引用参考文献:BibTex使用方法简介
- 支持向量机: Maximum Margin Classifier
- C++primer学习:面向对象程序设计(3):访问控制与继承
- include require _once
- 文章标ios 9.0SDK 没有.dylib
- 安装Gearman