1. 程式人生 > >i為backspace o為撤銷,求輸出實際結果

i為backspace o為撤銷,求輸出實際結果

位元組跳動筆試題  java  

/**
 * 
 * zijietiaodong
 * 
 * 情況分析
 * 1.首字母為i或o;
 * 2.首字母存在且非i或o情況下,存在下一個字母的情況下且當前字母為i 下一個字母為 o;
 * 3.首字母存在且非i或o情況下,當前字母為i
 * 4.首字母存在且非i或o情況下,當前字母為o
 */

package 考試位元組跳動;

import java.util.Scanner;

public class InputWrong {

	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		String str = scanner.nextLine();

		StringBuffer sb = new StringBuffer(str);
		for (int i = 0; i < sb.length(); i++) {
			System.out.println("此時" + sb.toString());
			if (i == 0 && (sb.charAt(i) == 'i' || sb.charAt(i) == 'o')) {
				System.out.println("yi");
				sb.deleteCharAt(i);
				i = -1;// -1才能繼續從頭迴圈;
				continue;
			}
			if (i < sb.length() - 1) {// 說明i+1存在
				System.out.println("san");
				if (sb.charAt(i) == 'i' && sb.charAt(i + 1) == 'o') {
					sb.delete(i, i + 2);
					i = -1;
					continue;
				}
			}
			if (sb.charAt(i) == 'i') {
				System.out.println("er1");
				sb.delete(i - 1, i + 1);// start 留的最後一個;end 刪的最後一個;
				i = -1;
				continue;
			}
			if (sb.charAt(i) == 'o') {
				System.out.println("er2");
				sb.delete(i - 1, i + 1);// start 留的最後一個;end 刪的最後一個;
				i = -1;
				continue;
			}

		}
		System.out.println(sb.toString());
	}
}