⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3373407_re.java

📁 北大大牛代码 1240道题的原代码 超级权威
💻 JAVA
字号:
package poj;

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

public class Main
{
	public static void main(String [] args)	throws IOException
	{
		new Main().run();
	}

	final String delim = "_,.\"():;!? ";

	public void run()	throws IOException
	{
		BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
		String line, words;
		StringTokenizer st;
		TreeMap <String, String> tm = new TreeMap <String, String> ();

		while ((line = br.readLine()) != null)
		{
			st = new StringTokenizer (line, delim, true);
			while (st.hasMoreTokens())
			{
				words = st.nextToken();
				if (delim.indexOf(words) != -1)
				{
					System.out.print(words);
				}
				else
				{
					int len = words.length();
					if (isAbbreviated(words))
					{
						String tmp;

						if ((tmp = tm.get(words.toLowerCase())) != null)
						{
							System.out.print(tmp);
						}
						else
						{
							System.out.print(words);
						}
					}
					else
					{	
						System.out.print(words);

						if (len > 3)
						{
							String tmp = (words.charAt(0) + new Integer (len - 2).toString() + words.charAt(len - 1)).toLowerCase();
							if (tm.containsKey(tmp) && !sameString(tm.get(tmp), words))
							{
								tm.remove(tmp);
								tm.put(tmp, null);
							}
							else
							{
								tm.put(tmp, words);
							}
						}
					}
				}
			}
			System.out.println();
		}
	}

	private boolean sameString(String string, String words) 
	{
		return string.equalsIgnoreCase(words);
	}

	private boolean isAbbreviated(String words)
	{
		return words.length() > 2 && Character.isDigit(words.charAt(1));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -