赞
踩
输入字符串s,输出s中包含所有整数的最小和。
说明:
字符串s,只包含 a-z A-Z ± ;合法的整数包括
包含数字的字符串。
所有整数的最小和。
用例:
输入
bb1234aa
输出
10
ps:1+2+3+3=10
用例:
输入
b12-34aa
输出
-31
ps:1+2+(-34)=-31
温馨提示!!!
华为OD机试考试官方会对考生代码查重。华为od机试因为有题库所以有很大的概率抽到原题。如果碰到了题库中的原题,千万不要直接使用题解中的代码,一定要做些修改,比如代码中的变量名,除此之外,代码的组织结构和逻辑也要进行一些改变,所以在日常的刷题中,要提前编写好属于自己的代码。
本题简单,循环遍历字符串,计算出字符串中所有数字之和的最小值即可
代码如下:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); StringBuilder fNum = new StringBuilder(); boolean flag = false; List<Integer> res = new ArrayList<>(); for (char ch : str.toCharArray()) { // 负数 if (ch == '-') { flag = true; fNum.append(ch); continue; } if (flag) { // 负数则保证拼接到最小 if (Character.isDigit(ch)) { fNum.append(ch); }else { // 负数拼接结束 res.add(Integer.valueOf(fNum.toString())); flag = false; fNum.setLength(0); } }else { if (Character.isDigit(ch)) { res.add(Integer.valueOf(String.valueOf(ch))); } } } int sum = res.stream().mapToInt(Integer::intValue).sum(); System.out.println(sum); }
执行结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。