华为OD题目:去除多余空格
package com.darling.boot.order.odt.odt9;
import java.util.*;
public class My {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
char[] charArray = line.toCharArray();
String line2 = sc.nextLine();
String[] strings = line2.split(",");
int[][] keyArr = new int[strings.length][2];
for (int i = 0; i < strings.length; i++) {
String keyStr = strings[i];
String[] split = keyStr.split(" ");
int[] key = new int[2];
key[0] = Integer.parseInt(split[0]);
key[1] = Integer.parseInt(split[1]);
keyArr[i] = key;
}
boolean isPreBlank = false;
boolean isInMask = false;
List<Integer> blankList = new ArrayList<>();
StringBuilder newLetter = new StringBuilder();
for (int i = 0; i < charArray.length; i++) {
char currChar = charArray[i];
if (currChar == ' ') {
if (isPreBlank && !isInMask) {
blankList.add(i);
}else {
newLetter.append(currChar);
}
isPreBlank = true;
continue;
}
if (currChar == '\'') {
isInMask = !isInMask;
isPreBlank = false;
newLetter.append(currChar);
continue;
}
newLetter.append(currChar);
isPreBlank = false;
}
blankList.sort((a, b) -> b - a);
for (int blankIndex : blankList) {
for (int i = 0; i < keyArr.length; i++) {
if (blankIndex < keyArr[i][0]) {
keyArr[i][0]--;
keyArr[i][1]--;
}
}
}
for (int i = 0; i < keyArr.length; i++) {
int left = keyArr[i][0];
int right = keyArr[i][1];
System.out.print(" [" + left + ", " + right + "]");
}
}
}