1. 华为OD机考题 + 答案
2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)
2023年华为OD真题机考题库大全-带答案(持续更新)
2. 面试题
一手真实java面试题:2023年各大公司java面试真题汇总--持续更新
3. 技术知识
java后端技术汇总 + 中间件 + 架构思想
求字符串中所有整数的最小和
题目
说明
- 字符串 s,只包含
a-z
A-Z
+
-
;- 合法的整数包括 1) 正整数 一个或者多个
0-9
组成,如0 2 3 002 102
2)负整数 负号-
开头,数字部分由一个或者多个0-9
组成,如-0 -012 -23 -00023
输入
包含数字的字符串
输出
所有整数的最小和
测试用例:
bb12-34aa->-31
说明:1+2+(-34)
bb1234aa ->10
public class MinInteger {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String words = sc.nextLine();int minInteger = find(words);System.out.println(minInteger);}public static int find(String words){int min = 0;//负数值Boolean negative = false;StringBuffer sb = new StringBuffer();//判断是否是整数,最小整数:每个正整数 + 最大负整数for (int i = 0; i < words.length();i++){if (Character.isDigit(words.charAt(i))){//累计正整数值或负数值if (!negative){min+= Character.getNumericValue(words.charAt(i));} else if (negative) {sb.append(words.charAt(i));}} else if (String.valueOf(words.charAt(i)).equals("-")) {//判断是否开启负数值累计negative = true;} else if (negative){negative = false;//结束,累加负数值min-= Integer.valueOf(sb.toString());sb.setLength(0);}}//字符串尾数是负数值if (negative){min-= Integer.valueOf(sb.toString());}return min;}
}