您的位置:首页 > 编程语言 > Ruby

RUBY-数组操作

2015-06-27 16:28 483 查看
#------------------------------------------- 试题描述 -----------------------------------------

# 试题背景:

#     在开发过程中,经常会对数组中的元素按某种规则进行排序

#

# 试题要求:

#     (1) 定义一个main方法, 接收一个参数,类型是数组,若不是数组要抛异常;

#     (2) 校验数组中的每个元素是字符串,若存在不是字符串的元素抛异常;

#     (3) 对数组中的元素按两种方式排序:

#         (3.1) 按元素字符串的长度从小到大排序;

#         (3.2) 按元素中所有字符的ASCII码之和排序,也是从小到大

#     (4) main方法以数组的形式返回两次的排序结果,例如:

#         main(["ab", "abc", "a"])   => [["a", "ab", "abc"], ["a", "ab", "abc"]]

#

# 注: 涉及抛出异常地方,异常类型与异常信息不限

#----------------------------------------------------------------------------------------------

#******************************************* 答题区 *******************************************

def main(value)

    arry=value

    array=Array.new

    if arry.class!=Array 

        puts "Type of input is not an array"

    else

        t=0

        arry.each {|x| t+=1 if x.class!=String} 

        if  t!=0

            puts "Type of element is not a string"

            exit 

        else 

            arr1=arry.sort{|a,b|a.length<=>b.length}

            arr2=arry.sort{|a,b|a.sum<=>b.sum}

        end

        array<<arr1<<arr2

        p array

    end

 end 

main(["ab","abc","a"])

#**********************************************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: