class Solution {
public:
long long countSubstrings(string s, char c) {
}
};
100236. 统计以给定字符开头和结尾的子字符串总数
给你一个字符串 s
和一个字符 c
。返回在字符串 s
中并且以 c
字符开头和结尾的非空子字符串的总数。
示例 1:
输入:s = "abada", c = "a"
输出:6
解释:以 "a"
开头和结尾的子字符串有: "abada"
、"abada"
、"abada"
、"abada"
、"abada"
、"abada"
。
示例 2:
输入:s = "zzz", c = "z"
输出:6
解释:字符串 s
中总共有 6
个子字符串,并且它们都以 "z"
开头和结尾。
提示:
1 <= s.length <= 105
s
和 c
均由小写英文字母组成。原站题解
golang 解法, 执行用时: 6 ms, 内存消耗: 4.1 MB, 提交时间: 2024-03-18 22:32:00
func countSubstrings(s string, c byte) int64 { k := int64(strings.Count(s, string(c))) return k * (k + 1) / 2 }
java 解法, 执行用时: 7 ms, 内存消耗: 43.8 MB, 提交时间: 2024-03-18 22:31:28
class Solution { public long countSubstrings(String s, char c) { long k = s.chars().filter(ch -> ch == c).count(); return k * (k + 1) / 2; } }
python3 解法, 执行用时: 42 ms, 内存消耗: 16.8 MB, 提交时间: 2024-03-18 22:31:07
class Solution: def countSubstrings(self, s: str, c: str) -> int: return comb(s.count(c) + 1, 2)