全部评论
及其丑陋的代码,基本想法就是找连续的符号,把对应数字排序。有很多特殊情况要考虑。。。。 import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()){
int n = in.nextInt();
int nums[] = new int[n];
char op[] = new char[n];
nums[0] = in.nextInt();
for (int i=1; i<n; i++){
op[i] = in.next().charAt(0);
nums[i] = in.nextInt();
}
for (int i=1; i<n;){
if (op[i] == '+') {
int j = i;
while (j<n&&op[j]=='+') j++;
if (j<n&&(op[j]=='*'||op[j]=='/')){
if (i==1){
Arrays.sort(nums,i-1,j-1);
}
else {
Arrays.sort(nums,i,j-1);
}
}
else {
if (i==1){
Arrays.sort(nums,i-1,j);
}
else {
Arrays.sort(nums,i,j);
}
}
i=j;
}
else if (op[i] == '-') {
int j = i;
while (j<n&&op[j]=='-') j++;
if (j<n&&(op[j]=='*'||op[j]=='/')){
Arrays.sort(nums,i,j-1);
}
else {
Arrays.sort(nums,i,j);
}
i=j;
}
else if (op[i] == '*'){
int j=i;
while (j<n&&op[j]=='*') j++;
if (op[i-1]=='/'){
Arrays.sort(nums, i, j);
}
else {
Arrays.sort(nums,i-1,j);
}
i=j;
}
else if (op[i] == '/'){
int j=i;
while (j<n&&op[j]=='/') j++;
Arrays.sort(nums,i,j);
i=j;
}
}
System.out.print(nums[0]);
for (int i=1; i<n; i++){
System.out.print(" "+op[i]+" "+nums[i]);
}
System.out.print("\n");
}
}
}
同求
相关推荐
点赞 评论 收藏
分享
06-03 19:26
西北农林科技大学 C++ 点赞 评论 收藏
分享