LeetCode 2185. Counting Words With a Given Prefix Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
2185. Counting Words With a Given Prefix

Description

You are given an array of strings words and a string pref.

Return the number of strings in words that contain pref as a prefix.

A prefix of a string s is any leading contiguous substring of s.

 

Example 1:

Input: words = ["pay","attention","practice","attend"], pref = "at"
Output: 2
Explanation: The 2 strings that contain "at" as a prefix are: "attention" and "attend".

Example 2:

Input: words = ["leetcode","win","loops","success"], pref = "code"
Output: 0
Explanation: There are no strings that contain "code" as a prefix.

 

Constraints:

  • 1 <= words.length <= 100
  • 1 <= words[i].length, pref.length <= 100
  • words[i] and pref consist of lowercase English letters.

Solutions

Solution 1

PythonJavaC++GoTypeScriptRustC
class Solution: def prefixCount(self, words: List[str], pref: str) -> int: return sum(w.startswith(pref) for w in words)(code-box)

Solution 2

PythonJavaC++Go
class Trie: def __init__(self): self.children = [None] * 26 self.cnt = 0 def insert(self, w): node = self for c in w: i = ord(c) - ord('a') if node.children[i] is None: node.children[i] = Trie() node = node.children[i] node.cnt += 1 def search(self, pref): node = self for c in pref: i = ord(c) - ord('a') if node.children[i] is None: return 0 node = node.children[i] return node.cnt class Solution: def prefixCount(self, words: List[str], pref: str) -> int: tree = Trie() for w in words: tree.insert(w) return tree.search(pref)(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !