- 浏览: 454872 次
- 性别:
- 来自: Runner
文章分类
- 全部博客 (97)
- commons (3)
- EJB3 (5)
- liferay (1)
- 设计模式 (1)
- JBoss (1)
- 常用 (6)
- guice (4)
- JAX-WS (1)
- 持久层处理 (3)
- 单元测试 (3)
- jmesa (6)
- mongodb (3)
- View显示 (6)
- lucene (1)
- struts2 (2)
- spring security (2)
- spring (4)
- hibernate (1)
- mysql (1)
- ruby (21)
- python (2)
- ubuntu (1)
- ibatis (2)
- javascript (3)
- 数据库 (1)
- swing (1)
- java基础 (2)
- dojo (1)
- android (9)
最新评论
-
BigHanson:
写得非常棒,醍醐灌顶 可以转发吗
spring security验证流程 -
背后的光:
spring security验证流程 -
hanlongjie:
commons-lang(time应用) -
litianpeng:
虽然是2009年写的帖子 不过还是要请问一下先生 我按照你的 ...
Ajax Fancy Capcha -
蔡小鱼:
ibatis总结
学了一段时间ruby后,又学了段时间python,学了python时间后,又想学学ruby了,本来原来打算用python搞个C/S软件的,学了一段时间后才发现根本没有针对python3的类库,wxpython没有,而pyqt那个客户端又有些问题,再加上其本身是收费的,越来越没劲,从而又想学下ruby了,毕竟在web方面,django是赶不上rails的,而且python那个通过缩进来区别代码段用着不是很习惯,所以又改学ruby了。前面的一遍博客已经有一二关的答案了,
http://fansofjava.iteye.com/admin/blogs/660506
所以从第3关开始写,改用ruby实现,其实也是从官方抄的。
One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.
题目的意思是一个小写字母,两边有且仅有三个大写字母,开始想了下,觉得很TMD的有难度,其实这就是搞web开发久的后果,几乎不会写算法了,因此无从下手,其实这个用正则表达式很简单:
ruby有种用法,有些方法后面可以不加括号,即也可以写成join()。
后面的关的确开始难起来了,第四关就有点难了,这关地址为
http://www.pythonchallenge.com/pc/def/linkedlist.php
当点击那张图片时地址变为
http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345
点此页面nothing的值也是需要改变的,这样一个一个继续下去,直到最后出现结果为止,
这个题有点难,本来对ruby都不是很熟悉的人我来说,是不太可能做得出来的,只能看答案了:
可以看出,用ruby尚且写了如此多的代码,用java的话不知道得写多少代码。
第四关这个是与python相关的,主要是关于序列化的问题,查看源代码内,发现有个banner.p的文件,把它下载下来,这是一个python序列化后的文件,当然对于python不了解的我来说,也只有在网上找答案:
<!-- peak hell sounds familiar ? -->这个提示, peak hell sounds like pickle,
原来这个banner.p是使用pickle序列化了python的一个对象保存下来的文本, 以前没有接触过pickle,
通过下面代码可以查出序列化前的数据:
如果要用ruby,也只能处理转换后的数据,也就是说只能用python来反序列化此数据,反序列化文件后会得到附件内的数据。就可以用ruby转换:
可以看出,pythonchange内容还是挺丰富的,涉及的范围很广。
第5关就更难了,如果凭空想象,依自已的实力几乎做不出来,经过网上的多方查证,勉强理解这道题的答案来历。这道题 链接:
http://www.pythonchallenge.com/pc/def/channel.html
网页给出的是一张图片,看不出什么,只得照例看源码,后有人提醒:
1.源码的第一行为:<html> <!-- <-- zip -->
2.拉链(zipper)
所以应该有一个zip的文件,于是将channel.html改为channel.zip,果然有个zip的文件可供下载,打开zip文件中的readme.txt 可以看到
welcome to my zipped list.
hint1: start from 90052
hint2: answer is inside the zip
于是一直查找到最后一个文件,查看其内容:
输出结果为:
"Collect the comments."
结果是想收集注释,其实这个东西本人是一点都不了解,也没看见哪里有什么文件注释,关于ruby的zip处理,可见:
http://rubyzip.sourceforge.net/
处理结果:
输出结果为:
访问http://www.pythonchallenge.com/pc/def/hockey.html会得到一句话:
it's in the air. look at the letters.
联系上面的那张图片里面的字母,答案就出来了:oxygen,真不容易。
第6关更难了,自己不看答案也是不可能做出来的,说实话,这题必需要求答题人员对语言有相当高的认识才行。我当然还不是那种人,所以只能看答案。
访问:http://www.pythonchallenge.com/pc/def/oxygen.html
这网页里面只有一张图片,其余什么都没有,唯一有点特别的就是图片中间有一条颜色不太一样的条纹,答案就从中产生。这条条纹中每种颜色的长度为7px,总长与宽为629*95,用ruby的话,有关于图片处理的组件rmagick,这个组件功能很强大,在ror中经常看见有人用,不过也有些复杂,所以目前自己还没试用过,正好这也是个机会。
不过用起来才发现还真是复杂,首先是安装,rmagick对windows平台的支持力度还不够吧,不支持ruby1.9.1,在1.8.7上也费了点神才跑起来。步骤是在别人那里看来的:
1 从http://rubyforge.org/projects/rmagick/ 下载rmagick-win32 对应的zip包(RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip).
2 解压zip到一个临时目录,在该目录中有一个ImageMagick的安装文件ImageMagick-6.5.6-8-Q8-windows-dll.exe,安装。
3 开一个命令行窗口,cd到解压的临时目录,敲入命令: gem install rmagick.
4.把ImageMagick 的安装路径放到path环境变量里面
这样以后,还需要引入才可以用,结合上面需求,具体代码如下:
ruby有些地方很怪异,比如Array.map与Array.collect方法作用是一样的,类似的事情还很多,而且早一点的版本根本就没这两个方法,可见起初,ruby api还是相当的不完善。
为什么要引入rubygems这个包目前还不清楚,但是不引入的话会提示找不到文件。当然目前对ruby的理解还在初级阶段,不理解的东西太多了。正因如此,解决此题本人花了相当多的时间,几乎花了半天时间,ruby api的查看目前还没找到比较好的方法也是个问题。
求最大公约数:
http://fansofjava.iteye.com/admin/blogs/660506
所以从第3关开始写,改用ruby实现,其实也是从官方抄的。
One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.
题目的意思是一个小写字母,两边有且仅有三个大写字母,开始想了下,觉得很TMD的有难度,其实这就是搞web开发久的后果,几乎不会写算法了,因此无从下手,其实这个用正则表达式很简单:
text = open('e:/three.txt').read() p text.scan(/[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]/).join
ruby有种用法,有些方法后面可以不加括号,即也可以写成join()。
后面的关的确开始难起来了,第四关就有点难了,这关地址为
http://www.pythonchallenge.com/pc/def/linkedlist.php
当点击那张图片时地址变为
http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345
点此页面nothing的值也是需要改变的,这样一个一个继续下去,直到最后出现结果为止,
这个题有点难,本来对ruby都不是很熟悉的人我来说,是不太可能做得出来的,只能看答案了:
require 'open-uri' nothing = "12345" 1.upto(400) do |n| open("http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=#{nothing}") do |f| str = f.read if str =~ / next nothing is (\d*)/ then newnothing = $1 puts "#{nothing} -> #{newnothing} \t\t#{str.chomp}" nothing = newnothing elsif str =~ /Divide by two/ then ni = nothing.to_i / 2 nothing = ni.to_s else puts str raise "Finished!" end end end
可以看出,用ruby尚且写了如此多的代码,用java的话不知道得写多少代码。
第四关这个是与python相关的,主要是关于序列化的问题,查看源代码内,发现有个banner.p的文件,把它下载下来,这是一个python序列化后的文件,当然对于python不了解的我来说,也只有在网上找答案:
引用
<!-- peak hell sounds familiar ? -->这个提示, peak hell sounds like pickle,
原来这个banner.p是使用pickle序列化了python的一个对象保存下来的文本, 以前没有接触过pickle,
通过下面代码可以查出序列化前的数据:
import pickle obj = pickle.load(open("banner.p", "r")) for line in obj: print "".join([k*v for k, v in line])
如果要用ruby,也只能处理转换后的数据,也就是说只能用python来反序列化此数据,反序列化文件后会得到附件内的数据。就可以用ruby转换:
text = open("f:/ruby/banner.rb").read() puts eval(text.tr('()','[]')).collect{|i|i.collect{|p|p[0]*p[1]}.join}
可以看出,pythonchange内容还是挺丰富的,涉及的范围很广。
第5关就更难了,如果凭空想象,依自已的实力几乎做不出来,经过网上的多方查证,勉强理解这道题的答案来历。这道题 链接:
http://www.pythonchallenge.com/pc/def/channel.html
网页给出的是一张图片,看不出什么,只得照例看源码,后有人提醒:
1.源码的第一行为:<html> <!-- <-- zip -->
2.拉链(zipper)
所以应该有一个zip的文件,于是将channel.html改为channel.zip,果然有个zip的文件可供下载,打开zip文件中的readme.txt 可以看到
welcome to my zipped list.
hint1: start from 90052
hint2: answer is inside the zip
于是一直查找到最后一个文件,查看其内容:
require 'zip/zip' nothing = 90052 comments = "" Zip::ZipFile.open("f:/channel.zip", Zip::ZipFile::CREATE) { |zFi| while nothing > 0 nNot = zFi.read(nothing.to_s + ".txt") nothing = nNot.split("nothing is ")[1].to_i end p nNot }
输出结果为:
"Collect the comments."
结果是想收集注释,其实这个东西本人是一点都不了解,也没看见哪里有什么文件注释,关于ruby的zip处理,可见:
http://rubyzip.sourceforge.net/
处理结果:
require 'zip/zip' nothing = 90052 comments = "" Zip::ZipFile.open("f:/channel.zip", Zip::ZipFile::CREATE) { |zFi| while nothing > 0 nNot = zFi.read(nothing.to_s + ".txt") comments += zFi.get_entry(nothing.to_s + ".txt").comment nothing = nNot.split("nothing is ")[1].to_i end puts comments }
输出结果为:
访问http://www.pythonchallenge.com/pc/def/hockey.html会得到一句话:
it's in the air. look at the letters.
联系上面的那张图片里面的字母,答案就出来了:oxygen,真不容易。
第6关更难了,自己不看答案也是不可能做出来的,说实话,这题必需要求答题人员对语言有相当高的认识才行。我当然还不是那种人,所以只能看答案。
访问:http://www.pythonchallenge.com/pc/def/oxygen.html
这网页里面只有一张图片,其余什么都没有,唯一有点特别的就是图片中间有一条颜色不太一样的条纹,答案就从中产生。这条条纹中每种颜色的长度为7px,总长与宽为629*95,用ruby的话,有关于图片处理的组件rmagick,这个组件功能很强大,在ror中经常看见有人用,不过也有些复杂,所以目前自己还没试用过,正好这也是个机会。
不过用起来才发现还真是复杂,首先是安装,rmagick对windows平台的支持力度还不够吧,不支持ruby1.9.1,在1.8.7上也费了点神才跑起来。步骤是在别人那里看来的:
引用
1 从http://rubyforge.org/projects/rmagick/ 下载rmagick-win32 对应的zip包(RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip).
2 解压zip到一个临时目录,在该目录中有一个ImageMagick的安装文件ImageMagick-6.5.6-8-Q8-windows-dll.exe,安装。
3 开一个命令行窗口,cd到解压的临时目录,敲入命令: gem install rmagick.
4.把ImageMagick 的安装路径放到path环境变量里面
这样以后,还需要引入才可以用,结合上面需求,具体代码如下:
require 'rubygems' require 'RMagick' image = Magick::ImageList.new("f:/oxygen.png") #x, y, width, height pixels = image.get_pixels(0,image.rows/2,image.columns,1) letters = pixels.map {|pix| pix.red.chr} clue = "" letters.inject(0) do |count, char| clue += char if count == 0 (count + 1) % 7 end /\[(.+)\]/.match(clue) p $1.split(", ").map {|num| Integer(num).chr}.join
ruby有些地方很怪异,比如Array.map与Array.collect方法作用是一样的,类似的事情还很多,而且早一点的版本根本就没这两个方法,可见起初,ruby api还是相当的不完善。
为什么要引入rubygems这个包目前还不清楚,但是不引入的话会提示找不到文件。当然目前对ruby的理解还在初级阶段,不理解的东西太多了。正因如此,解决此题本人花了相当多的时间,几乎花了半天时间,ruby api的查看目前还没找到比较好的方法也是个问题。
求最大公约数:
def mod(a,b) if a<0 || b<0 return "求模数字需要大于0" end a,b=b,a if(a<b) @yueshu = a%b if @yueshu.zero? b else mod(b,@yueshu) end end p mod(24,2)
发表评论
-
ruby生成java文件的工具
2012-05-17 14:41 1568java开发的很多代码都是 ... -
ruby的require加载
2011-11-15 10:18 3230ruby没有像java那种严格的包管理机制,因此引用起来就有些 ... -
windows上使用mysql2
2011-11-14 14:47 1375想在windows上做ruby应该的可能很底,ruby服务器在 ... -
rexml 中增加CDATA
2011-10-14 14:14 2330最近想用ruby写个能生成 ... -
ruby处理未定义的方法
2010-10-08 17:52 1558关于未定义的方法,《ruby编程语言》上面说得比较詳細了,所以 ... -
rails3的删除问题
2010-08-25 00:38 1644Rails 3所做的很大一个改进就是:Unobtrusive ... -
ROR+mysql的中文问题
2010-08-24 15:28 2277环境: os: ubuntu 10.04 ru ... -
Ubuntu上搭建ruby1.9.2 on rails3rc
2010-08-20 13:34 2227linux的分支不同使用起来还是有很多差别的,最近想用一下比较 ... -
rails3之ActionController
2010-07-29 21:36 3616rails3中有许多变化,现 ... -
windows运行rails3
2010-07-29 11:19 3328虽然rails3的beta版已经出来很久了,但一直没正式版,最 ... -
ruby之enumerator
2010-07-22 00:25 3543由于版本的变更,1.8与1.9在许多地方是不一样的,API变化 ... -
ror中属性值存储的处理
2010-07-19 02:11 1303今天细看了quakewang的那 ... -
一个简单rails应用的开发过程
2010-07-03 16:06 1603基本环境: rails2.3.8 ruby ... -
windows 上使用mongrel
2010-06-30 19:04 2892由于ruby自带了一个webrick的嵌入式服务器,所以以前都 ... -
redmine 一个不错的ror开源项目管理系统
2010-06-30 01:19 2637学了一段时间的ruby,想做点东西,折腾了一下wxruby,但 ... -
ruby的时间与日期
2010-06-04 10:22 4358最近心情稍微好一点,正好现在难得的清闲,于是看了一下ruby的 ... -
ruby的模块
2010-05-20 17:16 1853模块的定义跟类非常相似,只是用module关键字取代class ... -
ruby方法
2010-05-19 15:29 1900没事做,写着玩的。不过ruby的block,proc,闭包或l ... -
ruby 创建基本的类
2010-05-18 11:15 1146由于ruby的语法很多,看 ... -
ruby on rails入门基础
2010-04-10 01:33 3167最近有想学一下ruby on rails的冲动,JAVA这东西 ...
相关推荐
1、Ruby编程语言是什么? Ruby 是一种动态的、反射性的、通用的、开源的编程语言,专注于简单性和生产力。Ruby 具有 Perl、small talk、Eiffel、Ada 和 Lisp 的混合特性。Ruby 旨在创建一种与命令式语言的功能取得...
这篇文章是一份全面而深入的Ruby语言学习资源指南,旨在为那些想要学习Ruby编程的开发者提供清晰的学习路径和实践机会。通过这篇文章,您将了解到Ruby语言教程、案例以及相关项目资源的丰富内容,从而能够系统地掌握...
NULL 博文链接:https://rich8w.iteye.com/blog/464916
这是一个用ruby写的经典火星车问题,其中包含了单元测试代码
leetcode 答案 打卡 每天完成自己的题目后打卡。 Victor 打卡 姓名 日期 打卡 ...Ruby ...做这些题目的不是为了要去应聘...编程题。比如:atoi,strstr,add two num,括号匹配,字符串乘法,通配符匹配,文件路径简化,Text
初级java笔试题 丑陋的自动机 用于生成元胞自动机的算法集合。 目前仅包含“基本元胞自动机”或 Wolfram 书中的酷图片。 特征 提供一个 Automata::Elementary 类,该类采用规则编号、初始状态以及 #run(steps) 方法...
高级java工程师笔试题 精彩访谈 技术面试问题列表的精选列表。 如果你想贡献,请阅读 或 。 目录 编程语言/框架/平台 安卓 . AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 ...
TAO(Unix编程的艺术)(和相关的系统顿悟) 这是一个Ruby驱动的,ANSI彩色的,类似于fortune的程序,用于在适当的时候(例如登录时)拥护智慧。 在每种文化中,我都会遇到一个以“智慧”为题的章节。 然后我确切...
每日优鲜java笔试题Ruby书签 这是一个精选的基本 Ruby 和 Ruby on Rails 资源集合。 该项目旨在维护对初学者和高级 Web 开发人员同样有用的结构良好的参考。 ★ 代表编辑选择。 该列表不打算包括任何与 Ruby 编程...
java笔试题算法志贺 Shiika 是一种静态类型的、类似于 Ruby 的编程语言。 自 2000 年以来,Ruby 一直是我的“母语”。我喜欢 Ruby 的是: 容易写 不带括号的方法调用(例如p foo ) 方便的语法,如#{} 、修饰符if等...
leetcode中国 Leetcode NoteBook 力扣笔记 This is a collection of my ...这是一个记录我写力扣题和学习算法的笔记 ...编程语言使用: JavaScript 和 Ruby Langguages for notes: English, Chinese 笔记语言:中英
我觉得太麻烦了就放弃这个题了,补题的时候看了题解,感觉题解已经说的很明白了,在这里再记录一下吧,感觉还是自己太菜了,需要多做题长见识 题解的意思是,可以按位维护,因为异或等位运算,最大的特点就是,每一...
目录 Chap1 测试基础 ...Chap6编程及代码题 Chap7 计算机基础 1. C/C++ 2. JAVA 3. 多线程: 4. 网络编程 5. Linux: Chap 8 顷目和背景 Chap9 外部工具 1. Selenium 2. Ruby-Watir 3. QTP: 4. LoadRunner
高级java工程师笔试题全语言-面试-问题- 所有编程语言面试问答详解 作者 拉玛尼·希特什 iOS 开发者 Gmail:- 精彩访谈 请阅读 或 如果您想贡献。 目录 编程语言/框架/平台 安卓 AngularJS 角 主干JS C++ C C# 。网...
力扣(LeetCode) 相比其他编程平台有着很多优势: **各大知名公司面试真题:**对于求职者在这上面训练更具有针对性,目前国内一些公司面试时直接从在这上面出题。 **大中小企业都在使用:**常常会直接或者间接...
感觉很幸运讨厌 NoMethodErrors? 你觉得幸运吗? 这颗宝石将使正确的拼写方法成为过去。 我们现在真的是在未来! 我强烈推荐这个 gem 用于生产环境,为什么拼写错误会避免用户使用你的应用程序?...
高级java工程师笔试题目录 编程语言/框架/平台 安卓 AngularJS 角 主干JS C++ C C# 。网 Clojure CSS Cucumber 姜戈 码头工人 EmberJS 二郎 高朗 图Ql HTML 离子 IOS Java JavaScript jQuery 前端构建工具 ...
本书是一本解谜式的趣味算法书,从实际...过算法的关键原理讲解,从思维细节入手,发掘启发性算法新解,并辅以Ruby、 JavaScript等不同语言编写的源代码示例,使读者在算法思维与编程实践的分合之 间,切实提高编程能力
2. PHP与其他后端语言(如Python、Ruby等)有哪些差异和优势?请说明PHP相对于其他语言的优势。 3. PHP中的变量作用域是什么?请说明在PHP中的变量作用域规则。 4. PHP中如何进行错误处理(Error Handling)?请说明...