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