开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情
题目描述
给你一个字符串 s 和一个字符 letter ,返回在 s 中等于 letter 字符所占的 百分比 ,向下取整到最接近的百分比。
来源:力扣(LeetCode)
- 示例 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是一个小写英文字母
思路分析
根据题意可知,题目给出一个字符串s,一个字符letter。需要我们在字符串s中找出letter字符,并算出letter字符数量占整个s字符串的百分比。若是不能够整除就向下取整。
想要计算百分比,就必须有个总数,这个总数就是字符串s的长度leng。声明一个变量count,用来存储字符letter在字符串s中出现的次数。字符串也可使用for循环,循环字符串s,取出每个循环项,也就是每个字符,每个字符依次与字符letter比对一下,若是相等,那么变量count就加一,若是不相等,那就不管它。等整个字符串s都循环结束,变量count的值就是字符letter在字符串s出现的次数。那么到了一步,字符总数有了,letter出现的次数也有了,这样就可以计算楚百分比了。使用变量count除以总数leng,再乘以100,这样得出的结果有可能带有小数点,所以需要向下取整,需要Math.floor()。这样得出的结果就是我们想要的结果。
AC代码
function solution(strs, letter) {
const leng = strs.length;
let count = 0;
for(let i=0; i<strs.length; i++) {
if(strs[i] === letter) {
count += 1
}
}
let num = Math.floor(count / leng * 100)
console.log(num);
}
let s = "foobar", letter = "o";
solution(s, letter)