携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
2278. 字母在字符串中的百分比:
给你一个字符串 s 和一个字符 letter ,返回在 s 中等于 letter 字符所占的 百分比 ,向下取整到最接近的百分比。
样例 1:
输入:
s = "foobar", letter = "o"
输出:
33
解释:
等于字母 'o' 的字符在 s 中占到的百分比是 2 / 6 * 100% = 33% ,向下取整,所以返回 33 。
样例 2:
输入:
s = "jjjj", letter = "k"
输出:
0
解释:
等于字母 'k' 的字符在 s 中占到的百分比是 0% ,所以返回 0 。
提示:
1 <= s.length <= 100s由小写英文字母组成letter是一个小写英文字母
分析
- 面对这道算法题目,二当家的陷入了沉思。
- 遍历一遍字符串,计数有多少个给定字母是必然的。只不过很多语言有自带的API功能。
- 最后计算百分比有个小细节,如果先做除法再做乘法,就需要小数与整数互转。
题解
rust
impl Solution {
pub fn percentage_letter(s: String, letter: char) -> i32 {
(s.as_bytes().iter().filter(|&&c| { c == letter as u8 }).count() * 100 / s.len()) as i32
}
}
go
func percentageLetter(s string, letter byte) int {
return strings.Count(s, string(letter)) * 100 / len(s)
}
typescript
function percentageLetter(s: string, letter: string): number {
let cnt = 0;
for (const c of s) {
if (c === letter) {
cnt++;
}
}
return Math.floor(cnt * 100 / s.length);
};
c
int percentageLetter(char * s, char letter){
int l = 0;
int cnt = 0;
while (*s) {
if (*s == letter) {
++cnt;
}
++l;
++s;
}
return cnt * 100 / l;
}
c++
class Solution {
public:
int percentageLetter(string s, char letter) {
int count = 0;
for (char &c: s) {
if (c == letter) {
++count;
}
}
return count * 100 / s.length();
}
};
java
class Solution {
public int percentageLetter(String s, char letter) {
int count = 0;
for (int i = 0; i < s.length(); ++i) {
if (letter == s.charAt(i)) {
++count;
}
}
return count * 100 / s.length();
}
}
python
class Solution:
def percentageLetter(self, s: str, letter: str) -> int:
return s.count(letter) * 100 // len(s)
原题传送门:https://leetcode.cn/problems/percentage-of-letter-in-string/
非常感谢你阅读本文~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://juejin.cn/user/2771185768884824/posts 博客原创~