`

java之面试题(字符串数组连接求最小无重复的字符串)

阅读更多
如题:有一字符串数组:
String[] array = new String[] { "this", "is", "health", "service" };

经过算法分析后输出结果:healthiservice
public static void main(String[] args) {

		String[] array = new String[] { "this", "is", "health", "service" };

		int index = 0;
		String string = array[0];
		int arrayLen = array.length;
		String text = null;
		String pattern = null;

		while (index < arrayLen) {

			pattern = string;
			text = array[index];

			if (string.length() >= array[index].length()) {
				pattern = array[index];
				text = string;
			}

			string = merge(pattern, text);

			index++;
		}
		System.out.println(string);

	}

/**
	 * 经同事友情提供^_^,在此向他表示感谢^__^
	 * */
	public static String merge(String pattern, String text) {

		if (pattern == null || text == null) {
			return "";
		}

		StringBuilder sb = new StringBuilder();
		char[] tArray = text.toCharArray();
		char[] pArray = pattern.toCharArray();

		int index = 0;
		int pLen = pArray.length;
		int tLen = tArray.length;

		while (index < pLen) {

			for (int j = 0; j < tLen; j++) {

				if (pArray[index] != tArray[j]) {
					continue;
				}

				if (index == 0
						&& text.substring(j).equals(
								pattern.substring(index, tLen - j))) {
					sb.append(text.substring(0, j));
					sb.append(pattern);
				} else if (index == (pLen - 1) && j == 0) {
					sb.append(pattern);
					sb.append(text.substring(1, text.length()));
				}

			}
			index++;
		}
		return sb.toString();
}
分享到:
评论
2 楼 liuzidong 2011-08-12  
可能我描述得不是很清楚,你只需要查看结果就行了
或者你有更好的名字我借用下呀
1 楼 jackleechina 2011-08-12  
最小无重复的字符串???
什么意思

相关推荐

    Java 微软面试题

    1. **两两之差绝对值最小的值**:这是一个关于数组处理的问题,可以通过排序数组然后计算相邻元素之间的差值来解决,最小的差值即为所求。 2. **检查字符是否是整数**:可以通过遍历字符串并检查每个字符是否在'0'-...

    初级java程序员面试题笔试题.pdf,这是一份不错的文件

    初级 Java 程序员面试题笔试题是面向初级 Java 程序员的笔试题,这份文件提供了多个问题,涵盖了 Java 语言的基础知识点,包括面向对象编程、数据类型、运算符、控制流程、数组、字符串等。 描述解释 这份文件提供...

    java经典面试题

    ### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...

    java中级面试题整理

    Java面试题涵盖广泛,从基础到进阶,再到算法、并发、中间件等方面,以下是根据题目内容整理出的知识点详解: 一、Java基础 1. Java的数据类型:包括基本数据类型(整型、浮点型、字符型、布尔型)和引用数据类型...

    java面试题(最新的java面试题)

    根据给定的文件信息,...以上就是针对给定的 Java 面试题中涉及的关键知识点的详细介绍。这些知识点涵盖了 Java 编程语言的基础知识、高级特性以及实际应用中的常见问题,对于准备 Java 面试的开发者来说非常有帮助。

    最热门的Java 算法面试题汇总

    以下是一些热门的Java算法面试题及其详细解释: 1. **双指针问题**:常用于解决数组相关的问题,如寻找两个数之和等于目标值,或者在有序数组中查找重复元素等。通过维护两个指针,一个从左向右移动,另一个从右向...

    JAVA面试题及答案参考,JAVA面试前刷刷题

    JAVA面试题及答案参考,JAVA面试前刷刷题 JAVA面试题及答案参考是帮助Java开发者准备面试的重要资源。通过刷题,可以熟悉语言的基本概念和应用场景,提高自己的编程能力和分析问题的能力。在面试之前,刷题可以帮助...

    最新2年经验的Java面试题

    ### 最新2年经验的Java面试题精析 在IT行业,尤其是软件开发领域,Java作为一门历史悠久且应用广泛的编程语言,其面试题往往能够反映出求职者对这门语言掌握的深度与广度。以下是对“最新2年经验的Java面试题”中...

    剑指offer(java版67题)

    面试题 2:替换空格(考点: 字符串) 2 面试题 3:从尾到头打印链表(考点: 链表) 2 面试题 4:重建二叉树(考点: 树) 4 面试题 5:用两个栈实现队列(考点: 栈和队列) 5 面试题 6:旋转数组的最小数字(考点:...

    java面试题,非常全,可以参考

    ### Java面试题详解 #### Statement与PreparedStatement的区别 在Java中,`Statement`和`PreparedStatement`都是用于执行SQL语句的接口,但它们之间存在一些重要的区别: - **Statement**: - `Statement`用于...

    JAVA经典算法面试39题及答案

    Java编程语言在IT行业中占有重要地位,特别是在软件开发和面试环节,算法能力是评估候选人技术实力的关键指标之一。"JAVA经典算法面试39题及答案"这个资源为求职者提供了宝贵的复习材料,涵盖了多种常见的算法问题,...

    java面试题总结

    ### Java面试题总结 #### 一、MVC框架与MySQL索引 - **MVC框架**:MVC(Model-View-Controller)是一种常见的软件架构模式,用于将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)...

    java笔试面试算法题

    9. **字符串处理**:KMP算法、Rabin-Karp算法、Boyer-Moore算法等字符串匹配方法,以及字符串的逆序、子串查找等问题。 10. **位运算**:熟练运用位运算进行高效的数值操作,例如快速求幂、判断奇偶、查找数组中的...

    java面试题大汇总

    ### Java面试题大汇总 #### 1. Java基础知识点 Java是一种广泛使用的编程语言,具有平台独立性、安全性高和面向对象的特点。在面试中,理解Java的基本概念、数据类型和核心特性至关重要。 #### 2. 线程 线程是...

    Java程序员面试宝典 算法题

    + 题目描述:给出一个字符串,求出斐波那契字符数。 + 知识点:剪枝 + 题目难度:中等 1.5 尺取法 * 算法笔试模拟题精解之“超级区间” + 题目描述:给出一个区间,求出超级区间。 + 知识点:尺取法 + 题目...

    java常见面试题

    ### Java常见面试题详解 #### 1\. 一个".java"源文件中是否可以包括多个类(不是内部类)? 在一个`.java`源文件中确实可以包含多个类,但是有以下限制: - 只能有一个公共类(public class),且该类的名字必须...

    最新Java面试题

    ### 最新Java面试题知识点详解 #### 第一章 初识Java - **Java跨平台原理**:Java的跨平台特性主要得益于字节码文件(`.class`文件)和Java虚拟机(JVM)。Java程序编译成字节码文件后,由不同平台上的JVM解释执行...

    最全面详细的125道java面试题

    ### 最全面详细的125道Java面试题解析 #### 1. Java基础知识 - **面试题一:** 当前项目中最关注的一些问题是什么? - **解析:** 这个问题旨在考察应聘者对项目的理解和关注点。在回答时应侧重于技术挑战、团队...

    java部分面试题.pdf

    以下是对这些面试题中涉及的知识点的详细解析: 1. **Oracle,MySQL,DB2 三大数据库的相同点和区别**: - 相同点:都是关系型数据库管理系统,支持SQL语言,用于数据存储和管理。 - 区别:Oracle以高性能和复杂...

Global site tag (gtag.js) - Google Analytics