欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

数字num中对应的圈数量是多少?

发布时间:2024/3/24 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 数字num中对应的圈数量是多少? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

数字num中对应的圈数量是多少?

提示:本题是20220409美团笔试题1
整体的感觉就是:
平时扎实地训练,并打好基础,培养敏感度,是非常有必要。
当你见多识广,你一看考题就知道大概用什么样的数据结构去做,也知道用啥样的算法路程解决题目了。


文章目录

  • 数字num中对应的圈数量是多少?
  • 题目
  • 一、审题
  • 二、解题
  • 总结


题目

小团和小美在玩数圈游戏,游戏规则是这样的:

给出一个数字,小美需要立刻说出这个数字包含的圈圈的数量。
因为小团提问的频率非常快,小美希望你能帮她用程序来计算出来。

例如,对于数字0,包含1个圈,对于数字2,包含0个圈,对于数字8,包含2个圈。
我们给出对圈的认定标准如下表:arr

数字圈数量
01
10
20
30
40
50
61
70
82
91

输入描述
输入一行仅包含一个十进制整数n
对于80%的数据,n<=100000
对于20%的数据,n<=1000000000
输出描述
输出仅包含一个正整数,表示十进制数字n中的圈圈数


一、审题

题目很容易理解,就是给你一个数
比如:60498
去表格里面找,
6对应几个圈?1
0对应几个圈?1
4对应几个圈?0
9对应几个圈?1
8对应几个圈?2

求和得5,非常简单的题目

二、解题

当时我一看题目,瞬间就知道,这种和数字处理有关的题目,应该很简单的
既然有一个表,那就用哈希表对应起来,不过后来我想,不用申请哈希表了,直接用数组实现哈希表的功能
让数组arr=int[] arr = {1,0,0,0,0,0,1,0,2,1};//表示代表的圈数,下标i就是我们的原始数字

算法大流程

ans=0
输入一个字符串s,待会用ASCII码去转化数字即可
挨个遍历字符串s,累加ans+=arr[s[i] - ‘0’]就是结果

代码:

public static class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别String num = in.next();int[] arr = {1,0,0,0,0,0,1,0,2,1};//表示代表的圈数//挨个判断字符int ans = 0;for (int i = 0; i < num.length(); i++) {int bit = num.charAt(i) - '0';//转数字ans += arr[bit];}System.out.println(ans);}}

总结

提示:本题借鉴知识点:

哈希表可以用arr表示
ACM格式的数字可以用字符串输入,基本就是各大大厂们考的第一题类型。考的就是你有没有coding的能力,没别的意思。

总结

以上是生活随笔为你收集整理的数字num中对应的圈数量是多少?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。