【PAT甲级】11077 Kuchiguse (20 分) Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_42483341/article/details/100581832

题目

在这里插入图片描述

Java题解(最后一个测试用例没通过)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String totalStr = br.readLine();
		int total = Integer.parseInt(totalStr);

		// 读取字符串
		List<String> list = new ArrayList<>();
		for (int i = 0; i < total; i++) {
			list.add(br.readLine());
		}

		// 找最短的字符串长度
		int minLen = 1000;
		String minStr = "";
		for (String s : list) {
			if (s.length() < minLen) {// 0?
				minLen = s.length();
				minStr = s;
			}
		}

		// 有空串 输出nai
		if (minLen == 0) {
			System.out.println("nai");
			return;
		}

		// 查找重复后缀
		String sameStr = "";
		String curStr = "";
		label: for (int i = 1; i < minLen; i++) {
			curStr = minStr.substring(minLen - i);
			// 看是否相同后缀
			for (String s : list) {
//				if (!s.endsWith(curStr)||curStr.contains(" ")||curStr.contains(",")) {
//					break label;
//				}
				if (!s.endsWith(curStr)) {
					break label;
				}
			}
			sameStr = curStr;
		}
		if (sameStr == null || sameStr.equals("")) {
			System.out.println("nai");
		} else {
			System.out.println(sameStr);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/100581832