题目:
题目:题目描述输入字符串$,输出s中包含所有整数的最小和。
说明:字符串s,只包含a-ZA-Z±;合法的整数包括1)正整数一个或者多个0-9组成,如0230021022)负整数负号-开头,数字部分由一个或者多个0-9组成,如0-012-23-00023输入描述包含数字的字符串输出描述所有整数的最小和
题目解析
正数字符串的最小值如何计算?比如1234的最小值是多少,那肯定是1+2+3+4,即每位都是一个独立正数,且都是一个小于10的数,它们之和就是最小的。 ·
负数字符串的最小值如何计算?比如-34,那肯定是整体当成一个负数时,最小。 ·
数负数混合字符串最小值如何计算?比如12-34,那肯定是正数部分12每位单独计算,负数部分当成整体
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//test one
Scanner sc= new Scanner(System.in);
String str= sc.nextLine();
boolean s=false;
int result=0;
int k1=0;
StringBuilder stringBuilder=new StringBuilder();
for (int i=0;i<str.length();i++){
char tempChar=str.charAt(i);
//ac1223dcd
if (tempChar<='9'&&tempChar>='1'){
if(s==true){
stringBuilder.append(tempChar);
}else{
result+=Integer.parseInt(tempChar+"");
}
}else{
if (s==true){
result-=Integer.parseInt(tempChar+"");
stringBuilder=new StringBuilder();
}
}
if (tempChar=='-'){
s=true;
}
}
if (stringBuilder.length()>0){
result-=Integer.parseInt(stringBuilder.toString());
}
System.out.println(result);
}
}