HUAWEI 机试题输出字符串包含所有整数的最小和
🌈 Scala 实现
题目描述:
- 输入字符串s输出s中包含所有整数的最小和
说明:
- 字符串s只包含az,AZ, ,-,
- 合法的整数包括正整数,一个或者多个0-9组成,如:0,2,3,002,102
- 负整数,负号开头,数字部分由一个或者多个0-9组成,如-2,-012,-23,-00023
输入描述:
- 包含数字的字符串
输出描述:
- 所有整数的最小和
示例
输入:
- bb1234aa
输出:
- 10
输入:
- bb12-34aa
输出:
- -31
说明:
- 1 2-(34)=-31
代码:
def main(args: Array[String]): Unit = {
val scan = new Scanner(System.in)
// 获取输入的内容
var s = scan.next()
// 避免数组下标越界,加个符号
var line = (s " ").toCharArray
// 关闭资源
scan.close()
// 记录负号的位置
var subtract = 0
var flag = true
var sum = 0
for (i <- 0 until line.length) {
// 转型,将字母转成其他符号
if (('Z' >= line(i) & line(i) >= 'A') | ('z' >= line(i) & line(i) >= 'a')) {
line(i) = ' '
}
}
for (j <- 0 until line.length) {
breakable {
// 如果是正数,就置 flag 为 true,并跳出循环
if (line(j) == ' ') {
flag = true
break
}
// 如果是负数,就更改 subtract 的值,置 flag 为 false,并跳出循环
if (line(j) == '-') {
subtract = j
flag = false
break
}
}
if (flag) {
// 正数
if (line(j) != ' ') {
sum = line(j).toString.toInt
}
} else {
// 负数
if (line(j 1) == ' ' | line(j 1) == '-' | j == line.length - 1) {
sum -= line.mkString.substring(subtract 1, j 1).toString.toInt
}
}
}
println(sum)
}
❤️ END ❤️
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgkfbji
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13