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 自动创建页面功能一起使用效果更佳。