长期用 ruby 的 creek 和 fast_excel 两个 gem 包处理 excel,感觉很方便
这个配图怎么像中文编程语言 - 草泥马语言的 logo
终于在 Leetcode 美国网站上找到了 Ruby 可通过解,纠结了这么久,果然在世界范围内找高人还是有
def maximum_removals(s, t, a)
s, t = [s, t].map! { _1.each_char.map(&:ord) }
r, iz, jz = 0, s.size, t.size
(1..[iz - jz, a.size].min).bsearch do |k|
c = s.clone
(0...k).each { c[a[_1]] = 0 }
i = j = 0
while j < jz
i += 1 while i < iz && c[i] != t[j]
break if i == iz
i += 1
j += 1
end
j == jz ? (r = k if k > r; 1) : -1
end
r
end
美亚已上架,2024 年 1 月出版,65 美元
已删除,抱歉
对不起 ,我以为这是你们的招人策略,第一步解暗号,像小说里的一样。
window.ethereum.send 是一个不用调用 web3.js 那样的高阶库就可以向以太坊节点发送原始 json-rpc 请求的低阶方法。这个方法适用于在无法使用像 web3.js 那样的高阶库或其它库但又必须和以太坊节点交互的场景。
2008 年,matz 自己写的 The Ruby programming language,涵盖 1.8,1.9 的版本,中华商务进出口图书专营店还在卖,已经到了 115RMB 一本了,估计书都发黄了。
我学习 Ruby 是出于执念。我在 leetcode 上用 Ruby 刷题是出于预防老年痴呆的目的,刷了 600 多道。Ruby 这种 high level 的语法很适合我这种业余爱好者,像 go 语言这种刷题时还得自己写 max 函数的对我来说太难了。尽管每次用 Ruby 解题写的代码都很 c-style,但我自己开心就行。
不喜欢 Progmatic bookshelf 吗?Programming Ruby 就出自这里哦
等等吧,上面也说了,9 月才有纸质书可买
你的代码缩进风格怎么像是在写 Python
才发现循环赋值得到 hash,从一次到最后一次无非也就是 n/2,n/4,n/8……,最后一次判定时,在最坏的情况下,最后一次 hash.size 只有 1,与下面那个线性时间判定是不是子串的循环来说可以忽略不计了,最后也还是 O(n),然后与二分相乘也是 O(nlogn) ,我的努力方向不对,即使每次得到 hash 的耗时是 O(1),最后也还是 O(nlogn),还是需要更牛的算法。我还是太菜了。感谢楼主分享此题,学习 Ruby 果然很快乐,正如 matz 所说,写 Ruby 就像是在写伪代码。
不,这题是 Ruby 自己慢的原因,官方给的题解都是 NLogN 复杂度,其它语言都 OK,唯独 Ruby 过不去。
我不是程序员,但我尝试了下,也是卡在同样的位置。 这是我的代码。我一直想能不能先从 removable 得到一个 hash 后,然后使用 hash 的 slice API 来用 O(1)的时间复杂度得到需要部分的键值数据,貌似不行。 我把你这个循环赋值得到 hash 的代码改成 (removable[0, mid]).to_h {|item| [item,true]} 貌似也没啥作用。
def maximum_removals(s, p, removable)
@m = s.length
@n = p.length
left = 0
right = [removable.length, @m - @n].min
while left < right
mid = (right - left + 1) / 2 + left
temp = (removable[0, mid]).to_h {|item| [item,true]}
if judge(s, p, temp)
left = mid
else
right = mid - 1
end
end
return left
end
def judge(s, p, r)
j = 0
i = 0
while i < @m
unless r[i]
if s[i] == p[j]
j += 1
if j == @n
return true
end
end
end
i += 1
end
return false
end
问题已解决,把填的密码改为网易第三方授权码即可,谢谢大家了,非常感谢。
你尝试用 powershell, 假设这个 ruby 程序为 test.rb, 你在终端里输入 ruby test.rb >> output.txt, 你打开看下那个 txt 试试
哈哈,Ruby 和 Python 真适合没有编程基础的初学者,写玩具代码首推这两个。这是 Python 查看中国疫情的代码。在家自学的。
import json
import requests
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback'
res = requests.get(url).json()['data']
data = json.loads(res)
def showupdatetime(data):
print(str(data['lastUpdateTime']))
def showchina(data):
print ("中国累计确诊:" + str(data['chinaTotal']['confirm']) + "例,死亡:" + str(data['chinaTotal']['dead']) + "例,治愈:" + str(data['chinaTotal']['heal']) + "例。")
print ("中国今日新增确诊:" + str(data['chinaAdd']['confirm']) + "例,死亡:" + str(data['chinaAdd']['dead']) + "例,治愈:" + str(data['chinaAdd']['heal']) + "例。")
def showeverycity(data):
list0 = data['areaTree']
list1 = list0[0]
list2 = list1['children']
for province in list2:
templist = province['children']
print(province['name'] + "详情:")
for item in templist:
print(str(item['name']) + "今日新增确诊:" + str(item['today']['confirm']) + "例,累计确诊:" + str(item['total']['confirm']) + "例,死亡:"+str(item['total']['dead']) + "例,治愈:"+str(item['total']['heal'])+"例;")
showupdatetime(data)
showchina(data)
showeverycity(data)
enable_ssl = false 时,填 port 为 110 enable_ssl = true 时,填 port = 995 两种都试了
谢谢告知
开启了的,不是这个问题,谢谢你的回复
非常感谢,已经收到您的邮件了