美文网首页
ARTS Week 05

ARTS Week 05

作者: dotdotdotdotbar | 来源:发表于2019-05-05 11:52 被阅读0次

    Algorithm

    题目

    771. 宝石与石头

    给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
    J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。
    示例 1:
    输入: J = "aA", S = "aAAbbbb"
    输出: 3
    示例 2:
    输入: J = "z", S = "ZZ"
    输出: 0
    注意:
    S 和 J 最多含有50个字母。
    J 中的字符不重复。

    思路

    主要在于现根据J生成键值对,使用字符的ASCII码作为key,从而遍历S时能够直接根据字符的ASCII码查询J中是否存在该字符。

    代码

    class Solution {
        public int numJewelsInStones(String J, String S) {
            if (J == null || S == null) {
                return 0;
            }
            if (J.length() == 0 || S.length() == 0) {
                return 0;
            }
    
            char[] jewels = new char[58];//'z' = 'A' + 57,因此数组长度为58已足够
            int count = 0;
    
            for (int i = 0; i < J.length(); i++) {
                char c = J.charAt(i);
                jewels[c - 'A'] = 1;
            }
            for (int i = 0; i < S.length(); i++) {
                char c = S.charAt(i);
                if (jewels[c - 'A'] == 1) {
                    count++;
                }
            }
            return count;
        }
    }
    

    Review

    Small Functions considered Harmful
    这篇文章解释了小函数拥有的各种弊病,作者介绍了一般认为短小的函数所具备的优点,并且一一给出了自己的理由进行反驳。比如通常认为函数应该单一职责,因此应该尽量小,但是却很难去确认怎么样才算是单一职责。对于DRY原则,作者认为如果坚持按照DRY原则去做而不多做思考的话会导致只见树木不见森林,从而导致代码抽象混乱,同时作者给出了抽象的一些建议。同时,小函数会造成函数命名过长、代码定位困难、类文件增多等等各种问题。最后,作者给出了一些小函数真正有意义的情形。
    读完这篇文章,有一个体会就是说,不能照搬各种原则,就比如说函数尽量短小这样的原则,应该要多思考,如果把这些抽成一个函数,是不是真的有什么好处?如果这样做的话会不会有什么问题?经过仔细的思考之后再决定是否进行修改。

    Tip

    使用Hierarchy viewer分析布局:
    打开Android Device Monitor,不能在android studio3.1之后的版本中直接打开了,因此需要去sdk目录下面打开:打开sdk根目录的tools/monitor.bat,等一会之后就会启动了。
    按如下步骤打开:


    image.png
    image.png

    然后就打开了,在手机上运行相关的app,连接电脑,可以看到下图


    image.png
    选中某个节点,点击下图右上方圈起的按钮可以分析其渲染速度;
    image.png
    结果如下:
    image.png
    其中三个点一次代表measure、layout、draw时间,红黄绿三种颜色表示相对同级元素消耗时间的多少,红色耗时最多、黄色次之,绿色最快。

    Share

    https://www.jianshu.com/p/0b32c8ab5b66

    相关文章

      网友评论

          本文标题:ARTS Week 05

          本文链接:https://www.haomeiwen.com/subject/vevfoqtx.html