如何将长地址URL转换为短地址URL,一个比较理想的解决方案就是使用发号器生成一个唯一的整数ID(这唯一ID与长网址一一对应),然后转换为62进制,作为短地址URL。
发号器使用 Redis 的 incr 函数
incr('SID')
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。
例
给出 [1, 20, 23, 4, 8],返回组合最大的整数应为 8423201
给出 [1, 201, 20, 9, 8],返回组合最大的整数应为 98202011
给出 [1, 203, 20, 9, 8],返回组合最大的整数应为 98203201
我给简单好理解的两个排序算法:
算法1:
先把对比的数字转成字符,拼接后再转成整数进行大小对比,即 int(a+b) 与 int(b+a) 进行降序排列。代码1。
算法2:
每个元素逐个字符进行对比。代码2。
# Python2
class Solution:
def largestNumber(self, nums):
scmp = lambda a,b: int(b+a)-int(a+b)
res = ''.join(sorted(map(str, nums), cmp=scmp)).lstrip('0')
return res or '0'
通过关键字搜索抓取新浪微博的数据,分析得出新浪微博的搜索地址格式如下:
http://s.weibo.com/weibo/关键字
爬虫代码文件为 weibo-spider.js
假设我们要查询的关键字为 哈佛大学
则运行方式为
node weibo-spider.js 哈佛大学
执行此命令后,则爬虫会逐页抓取。