算法leetcode每日一练2255. 统计是给定字符串前缀的字符串数目

Posted 二当家的白帽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法leetcode每日一练2255. 统计是给定字符串前缀的字符串数目相关的知识,希望对你有一定的参考价值。


文章目录


2255. 统计是给定字符串前缀的字符串数目:

给你一个字符串数组 words 和一个字符串 s ,其中 words[i]s 只包含 小写英文字母

请你返回 words 中是字符串 s 前缀字符串数目

一个字符串的 前缀 是出现在字符串开头的子字符串。子字符串 是一个字符串中的连续一段字符序列。

样例 1:

输入:
	words = ["a","b","c","ab","bc","abc"], s = "abc"
	
输出:
	3
	
解释:
	words 中是 s = "abc" 前缀的字符串为:
	"a" ,"ab" 和 "abc" 。
	所以 words 中是字符串 s 前缀的字符串数目为 3 。

样例 2:

输入:
	words = ["a","a"], s = "aa"
	
输出:
	2
	
解释:
	两个字符串都是 s 的前缀。
	注意,相同的字符串可能在 words 中出现多次,它们应该被计数多次。

提示:

  • 1 <= words.length <= 1000
  • 1 <= words[i].length, s.length <= 10
  • words[i] 和 s 只 包含小写英文字母。

分析

  • 面对这道算法题目,二当家的陷入了沉思。
  • 大部分语言都有字符串类型,同时具有类似“startsWith”的库API。

题解

java

class Solution 
    public int countPrefixes(String[] words, String s) 
        int ans = 0;

		for (String word : words) 
			if (s.startsWith(word)) 
				++ans;
			
		
		
		return ans;
    


c

int countPrefixes(char ** words, int wordsSize, char * s)
    int ans = 0;

    for (int i = 0; i < wordsSize; ++i) 
        char *word = words[i];
        bool isMatch = true;

        for (int pos = 0; pos < 10; ++pos) 
            if (word[pos] == 0) 
                break;
            
            if (s[pos] == 0
                || word[pos] != s[pos]) 
                isMatch = false;
                break;
            
        

        if (isMatch) 
            ++ans;
        
    

    return ans;


c++

class Solution 
public:
    int countPrefixes(vector<string>& words, string s) 
        int ans = 0;
        
        for (string& word : words) 
            if (s.find(word) == 0) 
                ++ans;
            
        
        
        return ans;
    
;

python

class Solution:
    def countPrefixes(self, words: List[str], s: str) -> int:
        return sum(s.startswith(word) for word in words)
        

go

func countPrefixes(words []string, s string) int 
    ans := 0

	for _, word := range words 
		if strings.HasPrefix(s, word) 
			ans++
		
	

	return ans


rust

impl Solution 
    pub fn count_prefixes(words: Vec<String>, s: String) -> i32 
        words.iter().filter(|&word|
            s.starts_with(word)
        ).count() as i32
    


typescript

function countPrefixes(words: string[], s: string): number 
    let ans = 0;
    for (const word of words) 
        if (s.startsWith(word)) 
            ans++;
        
    
    return ans;
;


原题传送门:https://leetcode.cn/problems/count-prefixes-of-a-given-string/


非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~


以上是关于算法leetcode每日一练2255. 统计是给定字符串前缀的字符串数目的主要内容,如果未能解决你的问题,请参考以下文章

算法leetcode每日一练2265. 统计值等于子树平均值的节点数

算法leetcode每日一练2044. 统计按位或能得到最大值的子集数目

算法leetcode每日一练二叉搜索树的范围和

算法leetcode每日一练1614. 括号的最大嵌套深度

算法leetcode每日一练2130. 链表最大孪生和

算法leetcode每日一练2220. 转换数字的最少位翻转次数