• ARTS第十三周


    ARTS是什么?

    Algorithm:每周至少做一个leetcode的算法题;
    Review:阅读并点评至少一篇英文技术文章;
    Tip/Techni:学习至少一个技术技巧;
    Share:分享一篇有观点和思考的技术文章。

    Algorithm

    题目:242. Valid Anagram

    解题思路

    这道题目还是比较简单的,讲两个思路:一是把字符串排序,然后比较两个字符串是否一致,这种方法的时间复杂度是O(nlogn);二是把字符串放入map,然后比较map内容是否一致,这种方法的时间复杂度是O(n);下面的代码采用第二种方式。

    代码

     public boolean isAnagram(String s, String t) {
            Map<Character,Integer> sm = new HashMap();
            for (char c : s.toCharArray()) {
                if (sm.get(c) == null){
                    sm.put(c,1);
                }else{
                    Integer count = sm.get(c);
                    count++;
                    sm.put(c,count);
                }
            }
    
            Map<Character,Integer> tm = new HashMap();
            for (char c : t.toCharArray()) {
                if (tm.get(c) == null){
                    tm.put(c,1);
                }else{
                    Integer count = tm.get(c);
                    count++;
                    tm.put(c,count);
                }
            }
    
            return sm.equals(tm);
        }
    

    Review

    spring boot的宽松绑定规则 Relaxed Binding

    spring boot使用一些宽松的绑定规则来绑定Environment属性到标记了@ConfigurationProperties的bean上,Environment属性名字和bean属性名不需要完全匹配。常见的例子包括中划线“-”(context-path绑定到contextPath)和大小写(PORT绑定到port),其他还有驼峰、下划线共四种写法都可以正常绑定。

    Tip/Techni

    spring boot自动配置原理
    spring boot的自动配置是一个对开发者很方便的功能,在方便的使用这个功能的时候我们也要搞懂它背后的原理,以便更好的使用它,或是什么时候想要自己手动配置bean了知道该怎么做。今天我们就来探究一下spring boot是如何实现自动配置的。

    一般,我们会在项目启动类上加上@SpringBootApplication注解,默认情况下,加了这个注解就开启了自动配置,为什么这个注解会有这个效果了,我们可以去翻下这个注解的源码,它定义上面实际上包含了 @EnableAutoConfiguration注解,而 @EnableAutoConfiguration注解的定义上面又包含了@Import(EnableAutoConfigurationImportSelector.class)注解,最终spring在初始化bean的时候会去spring.factories文件查看有哪些类开启了自动配置功能,然后把开启了自动配置的类中符合条件的bean自动初始化好放入容器。整个过程的顺序如下:

    @SpringBootApplication -> @EnableAutoConfiguration -> @Import(EnableAutoConfigurationImportSelector.class) -> SpringFactoriesLoader(spring工厂加载器) -> spring.factories(工厂配置文件) -> @Configuration(spring.factories中配置的类上面标了这个注解,自动初始化符合条件的bean)

    Share

    分享一篇耗子叔介绍vim的文章简明 VIM 练级攻略,在看这篇文章之前我只会一些简单的vim命令,如:hjkl上下左右移动、/搜索、$移动到行尾等,不知道其他还有很多很强大的命令。一次偶然的机会看到了耗子叔的这篇文章,把我的另一支脚也拉进了vim的大门,见识了五彩斑斓的vim世界,可以使用vim及插件实现各种强大的文本功能,如果你也有了一点对vim的好奇,赶紧打开这篇文章认识一下这个传说中的编辑器之神吧。

    参考

    1. 那些离了就活不了的 VIM 插件
    2. 扔掉鼠标,开始键盘流编程
    3. 如何大幅度提高 Mac 开发效率
    如果您觉得本文对你有用,不妨帮忙点个赞,或者在评论里留言交流,欢迎您持续关注我的博客^_^
  • 相关阅读:
    GPU 版 TensorFlow failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
    Python -- 值转换为字符串的两种机制
    Python
    vim中注释多行python代码
    HTTP协议状态码详解(HTTP Status Code)
    关于Python报错:SyntaxError: Non-ASCII character 'xe5' in file的解决方法
    Linux如何查看进程、杀死进程、启动进程等常用命令
    vim 如何设置显示行号和缩进
    一、报错
    二、极光推送
  • 原文地址:https://www.cnblogs.com/muxuanchan/p/10553876.html
Copyright © 2020-2023  润新知