# 第二十五周ARTS总结

# Algorithm

298ms | 9.95% Run time
39.1MB | 95.24% Memory

public List<Integer> findSubstring(String s, String[] words) {
    List<Integer> ansList = new ArrayList<>();

    // 给定的words为空(或者s为空)
    if (words == null || words.length == 0 || s == null) {
        return ansList;
    }

    // s的总长度
    int sLength = s.length();

    // 单个word的长度
    int wLength = words[0].length();

    // words的总字符数
    int wsLength = wLength * words.length;

    // 如果s的长度不足words的总长度
    if (sLength < wsLength) {
        return ansList;
    }

    // 遍历所有可能的索引
    for (int i = 0; i <= sLength - wsLength; i++) {
        List<String> wList = new ArrayList<>(Arrays.asList(words));

        int index = i;

        // 判断此索引是否是所需要的
        while (wList.size() > 0) {
            String sub = s.substring(index, index + wLength);
            if (wList.contains(sub)) {
                wList.remove(sub);
                index += wLength;
            } else {
                break;
            }
        }

        if (wList.size() == 0) {
            ansList.add(i);
        }
    }

    return ansList;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

# Review

# Tip

  • 将资源文件中的值放入gradle文件中: manifestPlaceholders = [app_label:"@string/app_name"]
  • 可在gradle.properties中写上RELEASE_KEY_PASSWORD=xxxx,然后在gradle文件中直接使用即可
  • 多渠道打包(productFlavors)
  • signingConfigsrelease闭包并列写另一个闭包可以自定义一种build type
  • module全局配置参数的方式:可定义ext全局变量
  • 自定义导出的apk名称:
applicationVariants.all { variant ->
    variant.outputs.all {
        def apkFileName

        if ("debug" == variant.buildType.name) {
            apkFileName = "米多多_debug.apk"
        } else {
            apkFileName = "米多多_${defaultConfig.versionName}_${releaseTime()}.apk"
        }

        outputFileName = apkFileName
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
  • 可自定义一些方法来获取git的信息
  • 给自己留一个后门:点多下

# Share

暂无内容

更新时间: 10/20/2022, 7:04:01 AM