cometoj——C1027 [歡樂賽]第003話 收服寶可夢吧!

題目描述

繼上一話皮卡丘把那幾個壞人炸飛之後,小智確認皮卡丘已經完全恢復了。於是帶着皮卡丘繼續上路,前往尼比市去,小霞爲了她的腳踏車的事情也一直跟着小智。

在通往尼比市的路上,要經過一個漆黑的常磐森林,小智信心滿滿,他相信這個森林一定能抓到很多寶可夢,正走着,小霞突然害怕地雙手撲到小智的背上,小智側頭一看,咦,這不是可愛的蟲系寶可夢——綠毛蟲嗎? 小智向前走一步,撇開衣角摸出掛在皮帶上的精靈球,決定將這條綠毛蟲收服了。說時遲那時快,小智將精靈球精準地砸中綠毛蟲的頭部,綠毛蟲瞬間被收進了精靈球裏面。

雖然小霞非常討厭蟲,但是小智作爲一個不挑食、啥都喜歡的好孩子,對綠毛蟲可算是非常喜歡,而且這也是他收服的第一個寶可夢,是邁向成功的一大步!對綠毛蟲喜歡的不僅僅是小智,皮卡丘也開心的喊着"皮卡皮卡!",終於有同類一起生活了!

到了夜晚,小智和小霞都各自鑽進自己的睡袋裏睡覺了,皮卡丘和綠毛蟲卻在一塊大石頭上享受月光浴,他們開心地交流着…

實際上,不同寶可夢之間的對話是有規則的。假設綠毛蟲說出的話是字符串 s ,皮卡丘需要先說一個字符串 t , t 是 s 刪掉兩個字符之後得到的字符串,他才能獲得綠毛蟲要傳達的信息,綠毛蟲面對皮卡丘說的話也是一樣的規則。

那麼,給出兩個字符串 s 和 t ,你能判斷 t 是不是 s 刪掉兩個字符後的字符串嗎?

輸入描述

輸入有多組數據,第一行輸入一個正整數 T(1≤T≤2×10 ^5 ) ,表示測試組數。

然後對於每組數據,

第一行有一個字符串 s ,第二行有一個字符串 t。

數據中所有字符串都是由英文小寫字母 ‘a’ 至 ‘z’

組成的,長度都不是 0,且所有字符串的總長度和不超過 10^6

輸出描述

對於每組數據各輸出一行,如果是,輸出數字 1,如果不是,輸出數字 0。

樣例輸入 1

3
abcde
ace
abcde
aed
abcde
abcd
樣例輸出 1

1
0
0

思路:主要的注意點就是,有三種情況是可以輸出1的(看代碼),其他的沒什麼特別。

package four_star;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner read = new Scanner(System.in);
		int T = read.nextInt();
		while(T-->0)
		{
			String s = read.next();
			String t = read.next();
			int len1 = s.length();
			int len2 = t.length();
			if(len1-len2 != 2)
			{
				System.out.println(0);
				continue;
			}
			int i = 0;
			int j = 0;
			int count = 0;
			while(i<len1 && j<len2)
			{
				if(s.charAt(i) == t.charAt(j))
					j++;
				else
					count++;
				i++;
				/*if(count>2)
					break;*/
			}
			if(count == 2 && i==len1 && j==len2)
				System.out.println(1);
			else if(count == 1 && j == len2 && i == len1-1)
				System.out.println(1);
			else if(count ==0 && j==len2 && i==len1-2)
				System.out.println(1);
			else
				System.out.println(0);
			
		}
		read.close();
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章