RUBY-数组操作

#------------------------------------------- 试题描述 -----------------------------------------
# 试题背景:
#     在开发过程中,经常会对数组中的元素按某种规则进行排序
#
# 试题要求:
#     (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"])


#**********************************************************************************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值