十二周咯,算法题 Roman to Integer,看了一篇讲 Python 和 Go 的文章,记录了移动端网页适配 iPhone X 的内容,分享了三个月来做 ARTS 的一点感受。
/**
* Roman to Integer
* https://leetcode.com/problems/roman-to-integer/description/
*
* @param {string} s
* @return {number}
*/
var romanToInt = function(s) {
var romaDict = {
"CM":900,
"M":1000,
"CD":400,
"D":500,
"XC":90,
"C":100,
"XL":40,
"L":50,
"IX":9,
"X":10,
"IV":4,
"V":5,
"I":1
}
var rs = 0;
for (var k of Object.keys(romaDict)) {
var v = romaDict[k]
var reg = new RegExp(k, "g");
var repeatList = s.match(reg);
var repeat = repeatList ? repeatList.length : 0;
rs += v * repeat;
s = s.replace(reg, "")
}
return rs;
};
console.log(romanToInt("III"))
console.log(romanToInt("IV"))
console.log(romanToInt("IX"))
console.log(romanToInt("LVIII"))
console.log(romanToInt("MCMXCIV"))
因为之前做过 Integer to Roman
这个 Roman to Integer
还是比较容易有思路,和 Integer to Roman
差不多,但是这里要先算组合型的字符,比如 CM
就要在 M
之前计算。
然后这个方法通过两次正则去匹配,效率不是太高,应该还有更好的方法。
Moving from Python to Go
https://towardsdatascience.com/moving-to-go-from-python-9ebbd9a8aec4
文章从静态类型,JSON 解析,接口和类型推断 3 方面比较了 Python 和 Go 的不同。
我懂点 Python,对 Go 还挺有兴趣的,看文章可以大概了解下 Go 在这几方面与 Python 的不同,文章最后推荐了 《The Go Programming Language》,国内叫《Go 语言圣经》,看这个应该会更加系统。
分享个关于移动端网页适配 iPhone X 的相关内容。
iPhone X 新增了一个叫安全区域的概念,也就是除了四周圆角,上边刘海,底部小黑条之外中间的那个长方形区域。我们对网页做适配主要也是让主体内容保持在安全区域内。
苹果为了适配 iPhone X 对现有 viewport meta 标签扩展了一个叫 viewport-fit
的东东,用于设置网页在可视窗口的布局方式,可设置三个值:
默认不添加扩展的表现是 viewport-fit=contain,需要适配 iPhone X 须要设置 viewport-fit=cover。
除此之外,iOS 11 新增了四个预定义变量,用于设定安全区域与边界的距离,有四个预定义的变量:
然后就可以通过利用这些变量来达到将页面控制在安全区的目的:
body {
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
上面就是为了让 web 内容不要延伸到底部的小黑条,这里 constant
是为了兼容 iOS 11.2 之前的。
其实我觉得这个方案不是特别好,对于已有的项目,比如 hybrid app,页面数量何止成百上千,一个一个根据页面情况做适配简直是会疯掉,更好的方案是终端开发能定制 webview,提供能力,在 iPhone X 下就自动上下加个距离,页面也不用改,测试的工作量也会小很多 :-)
这周是做 ARTS 的第 12 周,差不多也要 3 个月了。一开始其实挺难的,看英文文章很慢,如果不是熟悉的技术,常常不太得要领,现在感觉有一点进步,稍微熟悉的大概看一下基本也能连猜带懵了解大半。
耗子哥说:『一件事情你有信心就能打败 99% 的人,然后坚持下去又能打败剩下 1% 中 99% 的人』
能完成 12 周的 ARTS 也是靠着坚持,然后想各种办法去完成没一周的任务,比如中午午睡的时间抽半个小时出来看一会儿英文文章,平常工作的时候遇到有益的 Tip 就赶紧记下了,想到什么可以 Share 的就先把关键字记下来,有空的时候再扩展一下。
总之,希望这只是一个开始,与君共勉。
记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。