小编hke*_*n27的帖子

使用Ruby将数字转换为单词?

如何将数字转换为红宝石中的单词?

我知道某处有一块宝石.试图在没有宝石的情况下实现它.我只需要用英语单词的数字来表示整数.发现这个,但它非常混乱.如果您对如何实现更清晰易读的解决方案有任何想法,请分享.

http://raveendran.wordpress.com/2009/05/29/ruby-convert-number-to-english-word/

这是我一直在努力的方面.但在实施量表时遇到一些问题.代码仍然是一团糟.我希望它在正常运行时更具可读性.

   class Numberswords
    def in_words(n)

    words_hash = {0=>"zero",1=>"one",2=>"two",3=>"three",4=>"four",5=>"five",6=>"six",7=>"seven",8=>"eight",9=>"nine",
                    10=>"ten",11=>"eleven",12=>"twelve",13=>"thirteen",14=>"fourteen",15=>"fifteen",16=>"sixteen",
                     17=>"seventeen", 18=>"eighteen",19=>"nineteen",
                    20=>"twenty",30=>"thirty",40=>"forty",50=>"fifty",60=>"sixty",70=>"seventy",80=>"eighty",90=>"ninety"}

     scale = [000=>"",1000=>"thousand",1000000=>" million",1000000000=>" billion",1000000000000=>" trillion", 1000000000000000=>" quadrillion"]


    if words_hash.has_key?(n) 
      words_hash[n]

      #still working on this middle part. Anything above 999 will not work
     elsif n>= 1000  
     print  n.to_s.scan(/.{1,3}/) do |number|
            print number
      end



      #print value = n.to_s.reverse.scan(/.{1,3}/).inject([]) { |first_part,second_part| first_part << (second_part == "000" ? "" : second_part.reverse.to_i.in_words) }
      #(value.each_with_index.map { |first_part,second_part| first_part == "" ? "" : first_part + scale[second_part] }-[""]).reverse.join(" ")

    elsif n …
Run Code Online (Sandbox Code Playgroud)

ruby numbers ruby-on-rails

12
推荐指数
5
解决办法
2万
查看次数

Ruby计数字符序列不使用正则表达式

在计算序列中的字符时需要有关此代码的帮助.

这就是我要的:

word("aaabbcbbaaa") == [["a", 3], ["b", 2], ["c", 1], ["b", 2], ["a", 3]]
word("aaaaaaaaaa") == [["a", 10]]
word("") == []
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def word(str)
words=str.split("")
count = Hash.new(0)

words.map {|char| count[char] +=1 }

return count
end
Run Code Online (Sandbox Code Playgroud)

我得到了一句话("aaabbcbbaaa")=> [["a",6],["b",4],["c",1]],这不是我想要的.我想计算每个序列.我更喜欢没有正则表达式的解决方案.谢谢.

ruby string count enumerable sequence

4
推荐指数
1
解决办法
370
查看次数

这段代码如何找到矩形交集?

这段代码找到了两个矩形的交集,但我无法完全理解它.当我尝试将其映射到纸上时,它甚至不会形成矩形:

def rec_intersection(rect1, rect2)
  x_min = [rect1[0][0], rect2[0][1]].max
  x_max = [rect1[1][0], rect2[1][1]].min
  y_min = [rect1[0][0], rect2[0][1]].max
  y_max = [rect1[1][0], rect2[1][1]].min
  return nil if ((x_max < x_min) || (y_max < y_min))
  return [[x_min, y_min], [x_max, y_max]]
end

rec_intersection([[1, 1], [2, 2]],[[0, 0], [5, 5]])
Run Code Online (Sandbox Code Playgroud)

上面的代码返回[[1, 1], [2, 2]].有人可以解释这个过程吗?

ruby intersection

2
推荐指数
1
解决办法
947
查看次数

查找数组中的所有子集

我需要帮助来解决这个ruby数组问题.

获取数组的所有子集.仅限独特套装.没有重复任何数字. num_subset([1,2,3])==>结果应该是[[], ["1"], ["1", "2"], ["1", "2", "3"], ["1", "3"], ["2"], ["2", "3"], ["3"]]

def num_subset(arr)
    holder =[]
    order_subset = [[]]

    (arr.length).times do |m|  
        arr.map do |n|
            holder += [n]  
            order_subset << holder
        end
    holder =[]  # resets holder
    arr.shift  # takes the first element out
    end
    order_subset
end
Run Code Online (Sandbox Code Playgroud)

我的结果是==> [[], ["1"], ["1", "2"], ["1", "2", "3"], ["2"], ["2", "3"], ["3"].我的问题是我错过了一个结果 ["1", "3"]

需要一些帮助指出我正确的方向.已经花了好几个小时.不要使用#combination捷径.我需要手动解决这个问题.

ruby arrays string algorithm numbers

2
推荐指数
1
解决办法
4093
查看次数

Ruby部分单词匹配

我需要帮助找到部分单词匹配.它应该返回与目标三个连续字母匹配的单词.例如:

WORDS = ["born", "port" ,"cort", "mort"]
find_match("corn", WORDS)  =>  returns  ["born", "cort"]
Run Code Online (Sandbox Code Playgroud)

应找到部分匹配"corn".和"b orn "和" cor t"匹配.

正则表达式可能不是解决此类问题的最佳方法.如果您有其他想法,请随时分享.

ruby expression cpu-word match partial

1
推荐指数
1
解决办法
1125
查看次数