🌈 Scala 实现
题目描述:
- 给定一个非空数组(列表)
- 起元素数据类型为整型
- 请按照数组元素十进制最低位从小到大进行排序
- 十进制最低位相同的元素,相对位置保持不变
- 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位
输入描述:
- 给定一个非空数组(列表)
- 其元素数据类型为32位有符号整数
- 数组长度为[1,1000]
输出描述:
- 输出排序后的数组
示例
输入:
- 1,2,5,-21,22,11,55,-101,42,8,7,32
输出:
- 1,-21,11,-101,2,22,42,32,5,55,7,8
代码:
def main(args: Array[String]): Unit = {
// 获取输入
val Input = StdIn.readLine().split(",").map(_.toInt).toList
// 实现排序
var Nums = Input
.sortWith((o1, o2) => {
val num1 = getNum(o1)
val num2 = getNum(o2)
if (!num1.equals(num2)) {
num1.compareTo(num2) < 0
} else {
num1.compareTo(num2) > 0
}
})
// 格式化输出
val buffer = new StringBuffer()
Nums.foreach(buffer.append(_).append(","))
// 输出结果
print(buffer.substring(0, buffer.length()-1))
}
def getNum(args: Int): Int = {
if (args > 0) {
args % 10
} else {
-args % 10
}
}
❤️ END ❤️