@Author : Lewis Tian ([email protected])
@Link : github.com/taseikyo
@Range : 2021-01-10 - 2021-01-16
总字数:2859 个(汉字:1363,英文单词:580,数字:116,中文标点:175,英文标点:625),阅读时长约:5 分 34 秒。
*Photo by unknown on Baidu
- algorithm
- 189.旋转数组
- review
- 我的阅读习惯(英文)
- tip
- 在 HTML 中以内联的方式展示脚注(英文)
- 在 Bash 中检查字符串是否包含子字符串(StackOverflow)
- share
- 有不同的意见才是真正的尊重(英文)
algorithm ⬆
1. 189.旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
这题用之前一个关于矩阵的逆技巧就很好解:$ BA = (A'B')' $,也即对原数组进行三次反转,就可以得到想要的结果。
func reverse(nums []int, start, end int) {
for start < end {
temp := nums[start]
nums[start] = nums[end]
start++
nums[end] = temp
end--
}
}
func rotate(nums []int, k int) {
n := len(nums)
k %= n
reverse(nums, 0, n - 1)
reverse(nums, 0, k - 1)
reverse(nums, k, n - 1)
}
这过程中又学到 go 的一点东西,关于 ++/--
,国内学过 C++ 的应该都见识过谭某人出过的一些 ++/--
的组合问题,go 为了避免这个问题发生,++/--
只能后置。
然后今天遇到这个问题,在上面 reverse
函数中,需要增减 start 和 end,本来我是直接 nums[start++] = nums[end]
这种,结果报错了,查了一下才知道 ++/--
做能作为语句(statement)出现,而不能是表达式(expression)。
Finally, since Go has no comma operator and ++ and -- are statements not expressions, if you want to run multiple variables in a for you should use parallel assignment.
review ⬆
1. 我的阅读习惯(英文)
这个作者很厉害,他的这个博客从 2003 年开通一直坚持到现在,毅力值得我学习。这篇文章介绍了他的阅读习惯,在 19 年他完成了 63 本书,而从 03 年到现在一共超过 700 本,我只能说太强了。
本文是以 Q&A 的方式记录的。
当被问到哪来时间读书时,作者说挤时间(I make time),跟鲁迅说的那句话类似(时间就像海绵里的水,只要愿意挤总还是有的),作者说道,I'm convinced that anyone can find time if they really want it; it's just a matter of priorities.,确实时优先级的问题,之前,好像是去年我定下每个月读两本书的计划,基本还能完成,后面就渐渐忘掉这个计划开始沉沦。
作者一共说了三点关于阅读的建议
- 有声读物(Audiobooks),这个占到他阅读的 1/3,我之前也下载过类似的东西,但是没有听,我还是觉得看更适合我。
- 每天晚上挤出半个小时的时间看书,这个其实还是很容易做到的,我前两周把 kindle 重新充电,本来打算看看书,结果又吃灰了,有几方面的原因吧。
- 跟孩子一起阅读,关于阅读,我可能更习惯安静的环境,自顾自的看书,旁边有人的话我会很烦躁,看不进去。
现在我更喜欢电子书,一方面便携,另一方面可以很方便做摘抄(Ctrl+C,所以我更喜欢文字版的 pdf)。实体书以后应该不会买了,就像算法导论,电子版我倒是看了一部分,买的那本书都没开封(还被室友笑了,草),而且总感觉电子书阅读效率更高?
最后还是以作者的一句话结尾吧:Reading a good book is an activity I enjoy on a profound level. It's not just for passing time; it's for gaining a deeper understanding of the world we inhabit, and for shaping my own view of myself and my place in this world.
读一本好书是我深深享受的一项活动。这不仅是为了消磨时间;这是为了加深对我们所生活的世界的了解,并塑造我对自己和我在这个世界上的地位的看法。(谷歌)
读一本好书是一种我深爱的活动。这不仅仅是为了消磨时间;这是为了更深入地了解我们所居住的世界,也是为了塑造我自己对自己和自己在这个世界上的位置的看法。(搜狗)
tip ⬆
将下面代码保存为 .html
文件即可查看效果。为什么会要这个东西,其实作者也是想在 epub 文件中更好地展示脚注,不用先跳转页面底部看脚注然后又滑回来。
至于效果如何我还没试过,不知道会不会跟在 html 中效果一样,不过前面 Weekly #9 中制作的弹出式注释也挺好的,我猜想这个博客中呈现的效果可能会因为格式的问题而无法展现出来,毕竟在 epub 中连(有序/无序)列表效果都无。
<!doctype html>
<html lang="en-gb">
<head>
<title>
Interactive Footnote Test
</title>
<style>
details,summary{display:inline;vertical-align:super;font-size:0.75em}
summary{cursor:pointer}
details[open]{display:contents}
details[open]::before{content:"["}
details[open]::after{content:"]"}
</style>
</head>
<body>
The most cited work in history,for example,is a 1951 paper
<details>
<summary>
1
</summary>
Lowry,O.H.,Rosebrough,N.J.,Farr,A.L.&Randall,R.J.J.Biol.Chem.193,265–275(1951).
</details>
describing an assay to determine the amount of protein in a solution.
<br>
<br>
Sunlight poured like molten gold
<details>
<summary>
2
</summary>
Not precisely,of course.Trees didn’t burst into flame,people didn’t suddenly
become very rich and extremely dead,and the seas didn’t flash into steam.A
better simile,in fact,would be‘not like molten gold.’
</details>
across the sleeping landscape.
<br>
<br>
My blog was recently featured in an academic paper
<details>
<summary>
3
</summary>
<span itemscope itemtype="http://schema.org/ScholarlyArticle">
<span itemprop="citation">
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">
<span itemprop="familyName">
Eishita
</span>
<span>
,
</span>
<span itemprop="givenName">
Farjana Z.
</span>
</span>
</span>
<span>
&
</span>
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">
<span itemprop="familyName">
Stanley
</span>
<span>
,
</span>
<span itemprop="givenName">
Kevin G.
</span>
</span>
</span>
<span>
&
</span>
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">
<span itemprop="familyName">
Esquivel
</span>
<span>
,
</span>
<span itemprop="givenName">
Alain
</span>
</span>
</span>
<q>
<cite itemprop="headline">
Quantifying the differential impact of sensor noise in augmented reality
gaming input
</cite>
</q>
<span>
(
</span>
<time itemprop="datePublished" datetime="2015">
2015
</time>
<span>
)
</span>
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<span itemprop="name">
Institute of Electrical and Electronics Engineers(IEEE)
</span>
</span>
<span>
.
</span>
DOI:
<a itemprop="url" href="https://doi.org/10.1109/gem.2015.7377202">
https:
</a>
</span>
</span>
</details>
which pleased me greatly.
</body>
</html>
如下,感觉像是正则的味道,一个有用的小技巧。
#!/bin/bash
string='My long string'
if [[ $string == *"My long"* ]]; then
echo "It's there!"
fi
还有 =~
这种运算符,有意思,它的功能是正则匹配(regexp matching)。
string='My string';
if [[ $string =~ "My" ]]; then
echo "It's there!"
fi
使用 grep
来达到目的。
if grep -q foo <<<"$string"; then
echo "It's there"
fi
该问题下还有很多其他的方法,这里挑选出三种我觉得不错的答案。
share ⬆
文章标题(True Respect is the Difference)我不知道翻译的对不对,但从文章内容来看是想表达对自己提出真正意见的人才是尊重自己。
确实如此,别人一味地附和可能会让自己迷失在某种陷阱中(糖衣炮弹),我们需要一些能直言不讳的好友指出自己的问题或者不足,这就不得不提到我党的优良传统:要积极开展批评与自我批评,认识到这一点的重要性从而完善自身,取得更好的进步。
作者提到三点:
- Ask for bluntness from the right people, at the right time.
在正确时间向正确的人寻求直言的反馈,啥时候是正确时间自己把握。
- Look for permission to initiate.
勇于开展批评与自我批评,不要畏畏缩缩,在别人的批评、建议中完善、进步。
- Praise as candidly as I critique
赞美和批评同样重要,赞美会激发进取心,批评完善毛病。
良药苦口利于病,忠言逆耳利于行。 —— 《史记·留侯世家》