[알고리즘] 모든 단어의 하위 문자열 을 연결 합 니 다.

1859 단어
제목
문자열 s 와 길이 가 같은 단어 words 를 지정 합 니 다.s 에서 words 의 모든 단어 가 연결 되 어 형 성 된 하위 문자열 의 시작 위 치 를 찾 습 니 다.
하위 문자열 은 words 의 단어 와 완전히 일치 해 야 합 니 다. 중간 에 다른 문자 가 있 으 면 안 되 지만 words 의 단어 가 연 결 된 순 서 를 고려 할 필요 가 없습니다.
예시 1:
  :
  s = "barfoothefoobarman",
  words = ["foo","bar"]
  :[0,9]
  :
    0   9          "barfoor"   "foobar" 。
        , [9,0]       。

예시 2:
  :
  s = "wordgoodgoodgoodbestword",
  words = ["word","good","best","word"]
  :[]

문제 풀이
제목: 문자열 s 와 길이 가 같은 단어 words 를 지정 합 니 다.
제목 해독:
  • 매개 변 수 는 String 형식의 배열 이 고 문자열
  • 입 니 다.
  • words 의 모든 길 이 는 같다.
  • 배열 의 몇 개의 값 을 임의로 조합 한 다음 문자열 에서 해당 하 는 아래 표 시 를 찾 습 니 다.
  • 다음 표 로 구 성 된 list
  • 를 되 돌려 줍 니 다.
    해체 방법
  • words 의 단어 가 각각 몇 개 씩 있 는 지 map 로 기록 합 니 다
  • 단어 당 길 이 는 len 이 고 모든 단어의 총 길 이 는 allLen
  • 입 니 다.
  • s 에서 allLen 의 문자열 을 차례대로 캡 처 한 다음 에 len 길이 로 단 어 를 나 누 어 각 단 어 를 tempMap 에 기록 합 니 다
  • 맵 과 맵 이 일치 하 는 지 비교
  • class Solution {
        public List findSubstring(String s, String[] words) {
            List result = new LinkedList();//      
            Map map = new HashMap();//    words      ,       
            if(words.length==0||s==null||"".equals(s))return result;//    
            int len = words[0].length();//       
            int allLen = len*words.length;//            
            if(s.length() tempMap = new HashMap();
                for(int j =0;j

    좋은 웹페이지 즐겨찾기