- 浏览: 2071212 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
#上文的inject现在用上了 module Enumerable def dups inject({}) {|h,v| h[v]=h[v].to_i+1; h}.reject{|k,v| v==1}.keys end end
arr = %w{foo bar baz bar baz qux foo zub} puts arr.dups.inspect # => ["baz", "foo", "bar"]
#替换一 inject(Hash.new(0)) {|h,v| h[v] += 1; h}.reject{|k,v| v==1}.keys
这个是比较好理解的
class Array def only_duplicates duplicates = [] self.each {|each| duplicates << each if self.count(each) > 1} duplicates.uniq end end
puts [1,2,2,4,5,1].only_duplicates.inspect ==> [1, 2]
require 'benchmark' module Enumerable def map_with_index index = -1 (block_given? && self.class == Range || self.class == Array) ? map { |x| index += 1; yield(x, index) } : self end end class Array def find_dups inject(Hash.new(0)) { |h,e| h[e] += 1; h }.select { |k,v| v > 1 }.collect { |x| x.first } end def find_dups2 uniq.select{ |e| (self-[e]).size < self.size - 1 } end def find_ndups # also returns the number of items uniq.map { |v| diff = (self.size - (self-[v]).size); (diff > 1) ? [v, diff] : nil}.compact end # cf. http://www.ruby-forum.com/topic/122008 def dups_indices (0...self.size).to_a - self.uniq.map{ |x| index(x) } end def dup_indices(obj) i = -1 ret = map { |x| i += 1; x == obj ? i : nil }.compact #ret = map_with_index { |x,i| x == obj ? i : nil }.compact ret.shift ret end def delete_dups(obj) indices = dup_indices(obj) return self if indices.empty? indices.reverse.each { |i| self.delete_at(i) } self end end array = [1,3,5,5,6,7,9,10,14,18,22,22,4,4,4,3,6] dups = nil Benchmark.bm(14) do |t| t.report('find_dups:') do dups = array.find_dups end end p dups #=> [5, 22, 6, 3, 4] p %w(a b a c c d).dups_indices p %w(a b a c c d).dup_indices('c') p %w(a b a c c d).delete_dups('a')
class Array def find_dups uniq.map {|v| (self - [v]).size < (self.size - 1) ? v : nil}.compact end end
def mostused(ahash) original_size = ahash.size sizes = {} ahash.uniq.map { |x| sizes[x] = original_size - ((ahash - [x]).size)} sizes.sort_by {|k,v| v}.pop end
发表评论
-
brew unable to unlink old 'README.md' (Permission denied)
2013-02-27 23:50 3942rvm install 2.0.0 met problem a ... -
2种使用class_eval动态定义方法的格式
2012-12-12 08:06 1215class MyClass def initiali ... -
ruby 1.9.3-p286 debugger-linecache
2012-10-18 21:10 1683update(05/13/2013) rbenv: 解决方 ... -
如何在Cucumber下运行ruby-debug
2012-04-07 00:19 1404# Gemfile group :development ... -
Cucumber Capybara Selenium 如何触发一个dom的点击事件
2012-04-06 12:50 2696就是 click_on 和 Press 只能针对button和 ... -
升级rails 3.2.3时候快速解决的小问题
2012-04-06 05:06 1346引用uninitialized constant Test:: ... -
Ruby 1.9.3 p125 安装ruby-debug
2012-04-05 00:50 1601Update: 4/10/2012 直接换成 gem 'deb ... -
关于block和闭包的练习
2012-03-06 11:25 996关于block和闭包的练习 def example(num ... -
yield可以在block中吗?
2012-03-06 10:58 939类似如下的实现 a = lambda { puts ... -
ruby 的回溯 正则表达式
2012-03-03 02:48 1252password =~ /^(?=.*\d)(?=.*[a ... -
动态定义ruby子类,和判断是否定义
2012-03-01 04:59 2607上篇有个标准的定义动态类变量 class MyClass ... -
动态定义类变量和类实例变量
2012-03-01 04:52 1564class Mine attr_accessor : ... -
Eloquent Ruby 读书笔记 续
2012-02-27 23:15 1203运算符重载和Ruby风格的运算符重载 程序大概意思是,重新定义 ... -
ruby 的 Enumerable 方法
2012-02-23 03:28 1174grep 是===来判断是否存在符合条件的sub enumer ... -
脱离rails环境单独使用capybara以及使用capybara测试拖放
2012-01-17 12:49 3497require 'rubygems' require ' ... -
ruby 1.9 rails 3.1 ruby debug的问题
2011-12-20 23:06 5717update(2015/05/12): for rbenv ... -
也说说ruby inject
2011-12-12 08:09 1918其实,没有什么太多说的,IE有的先链接过来 http://b ... -
带序号循环Hash
2011-12-02 23:17 1905hash.keys.each_with_index do ... -
Ruby On Rails 面试系列七,一个面试练习题
2011-11-28 12:26 2471现在面试流行让你写代码放到github上,这是其中一个要求 ... -
关于json
2011-11-26 22:03 3340js.erb alert('New object i ...
相关推荐
散列表在Ruby中广泛用于数据存储和查找。 总的来说,Ruby的语法和语言特性使其成为一个灵活、易于阅读和编写代码的编程语言。它的面向对象特性、动态类型和鸭子类型让开发者能够快速开发出可维护的代码,而丰富的...
Ruby数组支持多种操作,如添加元素(`push`、`unshift`)、删除元素(`pop`、`shift`)、查找元素(`index`)以及合并(`concat`)等。 二、哈希(Hash) 哈希是一种键值对的集合,它允许通过唯一的键来访问和存储...
在Ruby编程语言中,数据结构是组织、存储和处理数据的核心工具。它们是程序设计的基础,帮助我们有效地管理和操作数据。本项目“data-structures-ruby”专注于Ruby中的各种数据结构,通过创建一个gem来实现并展示...
6. 图遍历算法:如深度优先搜索(DFS)和广度优先搜索(BFS),在处理图结构问题时非常有用,例如找出两个节点之间的最短路径。 7. 字符串处理算法:如KMP(Knuth-Morris-Pratt)算法用于模式匹配,Rabin-Karp或...
5. **队列(Queue)**:先进先出(FIFO)的数据结构,Ruby中可以使用Array或Dequeue实现。 6. **集合(Set)**:不重复元素的集合,Ruby有内建的Set类提供集合操作。 7. **树(Tree)**:分层数据结构,如二叉树、...
在Ruby编程语言中,数组(Array)是一种非常重要的数据结构,它允许你存储多个值在一个单一的变量中。数组中的每个元素都有一个唯一的索引,根据这个索引,你可以轻松地访问、修改或删除这些元素。下面我们将深入...
在给出的基础插入排序示例中提到,如果数组中存在非整数类型的元素,可能会导致类型不匹配的问题。例如,尝试比较数字和`nil`会导致`ArgumentError`。这是因为Ruby允许数组包含不同类型的数据,因此在进行比较之前...
Ruby中的数组可以用`Array`类创建,支持多种操作,如添加、删除、查找和排序。 2. **链表**:链表不连续存储元素,每个节点包含数据和指向下一个节点的指针。Ruby中虽然没有内置链表结构,但可以通过对象和引用实现...
通过运行以下命令运行ruby测试: ruby test/<nameofproblem>.rb 例如: ruby test/valid_anagram_test.rb 这是在此项目中发现的问题的列表: 向右旋转数组(array_rotation.rb) 查找第一个非重复字符(first_...
- **XPath**:在 XML 文档中查找信息的语言。 - **XSLT**:XML 转换语言,用于转换 XML 文档。 以上技术涵盖了从前端到后端开发的各种需求,通过这些知识点的学习和掌握,可以有效地提高开发效率和代码质量。
DFS常用于找出所有可能的路径,而BFS则适用于找到最短路径,因为它总是先探索距离起点最近的节点。在Ruby中,我们可以使用递归或栈(对于DFS)以及队列(对于BFS)来实现这些算法。 例如,BFS的基本步骤是: 1. ...
这意谓你必须仔细地去查找并修改代码中的每一处 URL,否则它们将无法正常工作。 CI 给你一个简单的函数,可以这样编写超链接: 复制代码到剪贴板PHP 代码echo anchor('start/hello/fred', 'Say hello to Fred');CI...
- **倒排索引**:一种高效的数据结构,用于快速查找文档集合中包含特定关键词的所有文档。 - **Lucene, ElasticSearch, Solr, ELK**:流行的企业级搜索解决方案。 - **准确性, 召回率, 实时性**:评估搜索质量的关键...