> Java > java지도 시간 > Leetcode — 문자가 포함된 단어 찾기

Leetcode — 문자가 포함된 단어 찾기

Patricia Arquette
풀어 주다: 2025-01-08 06:26:41
원래의
979명이 탐색했습니다.

Leetcode — Find Words Containing Character

다음과 같이 설명하면 쉬운 문제입니다.

인덱스가 0인 문자열 단어 배열과 문자 x가 제공됩니다.

문자 x가 포함된 단어를 나타내는 인덱스 배열을 반환합니다.

반환된 배열의 순서는 상관없습니다.

예 1:

입력: 단어 = ["leet","code"], x = "e"
출력: [0,1]
설명: "e"는 "leet"와 "code" 두 단어 모두에서 발생합니다. 따라서 인덱스 0과 1을 반환합니다.

예 2:

입력: 단어 = ["abc","bcd","aaaa","cbc"], x = "a"
출력: [0,2]
설명: "a"는 "abc" 및 "aaaa"에 나타납니다. 따라서 인덱스 0과 2를 반환합니다.

예 3:

입력: 단어 = ["abc","bcd","aaaa","cbc"], x = "z"
출력: []
설명: "z"는 어떤 단어에도 나타나지 않습니다. 따라서 빈 배열을 반환합니다.

제약사항:

1

1 <= 단어[i].length <= 50

x는 영문 소문자입니다.

words[i]는 영문 소문자로만 구성됩니다.

이 문제를 해결하려면 단어 목록을 반복해야 합니다. 각 단어에 대해 문자가 포함되어 있는지 확인하고, 그렇다면 해당 색인을 응답 목록에 저장해야 합니다.

class Solution {
    public List<Integer> findWordsContaining(String[] words, char x) {
        // create response
        final List<Integer> indexes = new ArrayList<>();

        // iterate words string array
        for(int i=0;i<words.length;i++){
            // check if char exists into the word
            if(words[i].indexOf(x) != -1){
                indexes.add(i); // if yes add index into the response
            }
        }

        // return searched indexes
        return indexes;
    }
}




</p>
<blockquote>
<p>런타임: 1ms, Java 온라인 제출의 100.00%보다 빠릅니다.</p>

<p>메모리 사용량: 44.95MB, Java 온라인 제출물의 49.76% 미만입니다.</p>
</blockquote>

<p>—</p>

<p>일반적으로 더 깔끔하지만 성능에 더 많은 영향을 미치는 람다/함수 접근 방식을 사용하려는 경우 다음과 같습니다.<br>
</p>

<pre class="brush:php;toolbar:false">class Solution {
    public List<Integer> findWordsContaining(String[] words, char x) {
        return IntStream.range(0, words.length)
                .boxed() // convert primitive into Class related (int -> Integer)
                .map(i -> getIndexIfCharExistsInWord(words[i], i, x))
                .filter(Objects::nonNull) // to remove null ones from mapping
                .collect(Collectors.toList());
    }

    public Integer getIndexIfCharExistsInWord(final String word, final int i, final char x) {
        return word.indexOf(x) != -1 ? i : null;
    }
}
로그인 후 복사

런타임: 9ms, Java 온라인 제출의 2.72%보다 빠릅니다.

메모리 사용량: 44.90MB, Java 온라인 제출물의 66.32% 미만입니다.

그렇습니다! 논의할 다른 사항이 있으면 언제든지 댓글을 남겨주세요. 누락된 사항이 있으면 알려주시면 그에 따라 업데이트할 수 있습니다.

다음 포스팅까지! :)

위 내용은 Leetcode — 문자가 포함된 단어 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿