CodingTour
ARTS #190 | 手工兔兔

Algorithm

本周选择的算法题是:Valid Sudoku

class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        table = set()
        for i in range(len(board)):
            for j in range(len(board[0])):
                if board[i][j] == '.': continue

                row_key = f'{i}_{board[i][j]}'
                column_key = f'{j}-{board[i][j]}'
                grid_key = f'{(i // 3) * 3 + (j // 3)}:{board[i][j]}'
                if row_key in table or column_key in table or grid_key in table:
                    return False

                table.add(row_key)
                table.add(column_key)
                table.add(grid_key)
        return True

Review

Writing Code Without Plain Text Files

第一反应很 cool,但还没有完全理解,所以没办法做出像样的 Review。

不过有一点好像在慢慢形成共识,即:文件的概念没有那么重要了,反正数据都在云端。以前传递信息还必须通过文件这样的载体,现在的文件是以更小的粒度存放在数据库中,对信息的操作、管理、分享也变得更加方便,似乎文件这个形态也到了快要被颠覆的十字路口?这应该是最近看到的第二篇讲这个的,上一次是 Vol 062 陈达博:从设计软件沉浮50年看未来设计工具之路

Tip

AI 工具集,每日更新中: Futurepedia

Share

分享下如何在 Notion 里设置动态 title,比如添加日期。

第一种方式:使用 Zapier

Zapier 定义了一个叫 Zap 的概念,它像一个应用,但更像一个中间件,简单来说,用 Zap 可以实现不同平台之间的数据迁移,比如收到一封指定规则的 Gmail 邮件时将内容保存进 Google Spreadsheet:

再比如自动将发布在 Instagram 上的照片同步到 Twitter:

所以利用 Zapier 我们很容易实现这样一个中间件:

操作体验很不错,几乎不会遇到什么障碍。

想进一步了解 Zapier 的话可以看下这篇文章: [万字详述:Zapier通往1.4亿美金ARR的内容营销之道出海101](https://mp.weixin.qq.com/s/jzZg1u7AdHsOx2YcOEIhvg),这是一家能把 SEO 做成壁垒的公司!

第二种方式:自建服务

利用 Notion 自己的 API My integrations 再加上 Vercel 这样的 Serverless Functions 云计算部署平台也很容易实现,个人用户来说,名免费的 Hobby 额度也够用了: Limits & Limitations

第三种方式:用输入法

现在的很多输入法都支持通过 “rq”、“日期” 之类的快捷方式调出日期选项:

虽说不是全自动的,但胜在不用折腾。

最终效果长这样:

搭配 Notion 自动创建页面功能一起使用效果更佳。