Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享。每周打卡一次,这就是ARTS打卡。
1. 做算法题
LeetCode680题. 验证回文字符串 Ⅱ
题目描述:
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
示例 1:输入: “aba”
输出: True
示例 2:输入: “abca”
输出: True
解释: 你可以删除c字符。
**解题思路:**字符串是否回文很好判断,只需与逆序字符串比较是否一致,但题目是删除0-1个字符是否是回文。可以通过左右两个指针同时移动判断是否元素相同,如果不同,删除一个元素(左元素or右元素)后再判断是否回文。Python语法支持一行代码的函数定义,也就是lambda函数,语法为:function_name = lambda arguments: expression
解题代码:
class Solution:
def validPalindrome(self, s: str) -> bool:
isPalindorme = lambda s: s == s[::-1]
delElement = lambda s, x: s[:x] + s[x+1:]
left = 0
right = len(s) - 1
while left < right:
if s[left] != s[right]:
return isPalindorme(delElement(s, left)) or isPalindorme(delElement(s, right))
left += 1
right -= 1
return True
2. 点评英文文章
文章Blockchain Protects From Data Miners But Is Also A Perfect Tool For Data Mining说区块链可以防止数据滥用(大数据杀熟、造假、欺诈),也是数据挖掘的好工具(精准营销、不可篡改、反欺诈)。常常用户数据被倒卖,用于广告投放,这不仅仅引起用户的反感,对广告投放也不佳。区块链作为一个不可篡改的数据库,可以透明并加密地记录数据,数据从哪里来到哪里去都可以记录痕迹,一定程度可以控制广告公司对数据滥用,也可以帮助数据的去伪。作者没有说具体如何使用区块链做数据挖掘应用。
3. 技术技巧
最近BTC的价格突破新高,达到2万美元。BTC的价格总是让人琢磨不定,忽高忽低。一个资产的价格取决于对它的预期,而大众舆论可以反应预期的情况。有个lunarcrush的网站分析各类社交媒体中某个加密货币的舆情,分析与价格的关联情况,可作为大众舆论的参考,进而估计币的价格走势。
4. 技术分享
目前记笔记常用Typora+坚果云,但Typora有个问题,无法建立文档与文档的关联,缺少标签索引,用tiddlywiki可以解决。tiddlywiki是一个轻量级非线性笔记本,其实仅仅保存一个html文件,初始大小只有2M。入门使用可以参考。
写于南昌艾溪湖畔,天气晴,上午带儿子去采摘草莓,天很蓝,玩的很开心。