L1-086 斯德哥尔摩火车上的题 - java

题目解析

给定两个字符串 求出其进行斯德哥尔摩火车上的算法进行处理后的字符串

然后判断处理后的字符串是否相同
相同输出一个
不相同输出每个的处理后的字符串

解题思路

利用ArrayList存储处理后的字符

然后遍历判断两个ArrayList是否相同

输出第一个ArrayList
如果不相同再输出第二个ArrayList

代码

import java.io.*;
import java.math.*;
import java.util.*;

public class Main
{
	static ArrayList<Character> solve(String str)
	{
		char s[] = str.toCharArray();
		int n = str.length();

		ArrayList<Character> res = new ArrayList<Character>();
		for (int i = 1; i < n; i++)
		{
			if (s[i] % 2 == s[i - 1] % 2)
				res.add((char) Math.max(s[i], s[i - 1]));
		}
		return res;
	}

	static void print(ArrayList<Character> res)
	{
		for (int i = 0; i < res.size(); i++)
			out.print(res.get(i));
		out.println();
	}

	static boolean equals(ArrayList<Character> A, ArrayList<Character> B)
	{
		int n = A.size(), m = B.size();
		if (n != m)
			return false;
		for (int i = 0; i < n; i++)
		{
			if (A.get(i) != B.get(i))
				return false;
		}
		return true;
	}

	public static void main(String[] args)
	{
		String a = sc.next(), b = sc.next();

		ArrayList<Character> A = solve(a), B = solve(b);

		print(A);
		if (!equals(A, B))
			print(B);

		out.flush();
		out.close();
	}

	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(System.out);
}

ArrayList


团体程序设计天梯赛-练习集-java

赞赏