ARTS打卡 - 2023-03-W1

78 阅读1分钟

Algorithm

 一次编辑

class Solution {
    public boolean oneEditAway(String first, String second) {
        if (first == null || second == null) {
            return true;
        }
        if (Math.abs(first.length() - second.length()) > 1) {
            return false;
        }
        if (first.equals("") || second.equals("")) {
            return true;
        }
        boolean lengthIsEqual = false;
        if (first.length() == second.length()) {
            lengthIsEqual = true;
        }
        String longStr = "";
        String shortStr = "";
        if (first.length() > second.length()) {
            longStr = first;
            shortStr = second;
        } else {
            longStr = second;
            shortStr = first;
        }
        StringBuilder longSb = new StringBuilder(longStr);
        StringBuilder shortSb = new StringBuilder(shortStr);
        int calcLength = 0;
        if (lengthIsEqual) {
            calcLength = longStr.length();
        } else {
            calcLength = shortStr.length();
        }
        for (int i = 0; i < calcLength; i++) {
            if (first.charAt(i) != second.charAt(i)) {
                if (lengthIsEqual) {
                    return longSb.deleteCharAt(i).toString().equals(shortSb.deleteCharAt(i).toString());
                } else {
                    return longSb.deleteCharAt(i).toString().equals(shortSb.toString());
                }
            }
        }
        return true;
    }
}

Review

5 Common Kotlin Coroutines interview questions

Tip

本周看 Kotlin 协程源码发现两个关键字,expect 和 actual。expect 只是一个接口,想看具体实现需要找一下 actual 声明的方法,简单了解下这两个关键字。

在 Kotlin 中,"expect" 和 "actual" 是一对关键字,用于实现多平台的代码共享和交互。

"expect" 关键字用于定义一个抽象的期望声明,它只提供了声明的 API,但没有具体的实现。这意味着它只是一个接口,没有具体的实现代码。

"actual" 关键字用于提供特定平台上的实际实现。也就是说,它提供了实现代码,用于与期望声明进行匹配。

通过使用这对关键字,开发者可以编写一个期望声明,然后在不同的平台上提供不同的实现。例如,可以编写一个期望声明,定义一个跨平台的网络客户端,然后在 Android 和 iOS 平台上分别提供不同的实现。

Share

本周还是主要回顾学习《深入理解 Kotlin 协程》第三章还有部分第五章。