0

我是红宝石的新手。我用Java写了一个解决方案

public boolean checkOrder(String input) {
        boolean x = false;
        for (int i = 0; i < input.length() - 1; i++) {
            if (input.charAt(i) < input.charAt(i + 1) || input.charAt(i) == input.charAt(i + 1)) {
                x = true;
            } else {
                return false;
            }
        }
        return x;

    }

我想在 ruby​​ 中做同样的事情,我怎样才能将它转换成 ruby​​。谢谢。

4

3 回答 3

9
def checkOrder(input)
  input.chars.sort == input.chars.to_a
end
于 2013-05-02T15:28:14.623 回答
2

Sam 的答案的变体,以防您希望将其作为 String 方法:

class String
  def sorted?
    self.chars.sort == self.chars.to_a
  end
end

'abc'.sorted?
'acb'.sorted?
于 2013-05-02T15:51:32.520 回答
1

按照要求:

def checkOrder(input)
  x = false
  (input.length-1).times do |i|
    if input[i] < input[i+1] or input[i] == input[i+1]
      x = true
    else
      return false
    end
  end
  x
end
于 2013-05-02T15:38:38.423 回答