如题:有一字符串数组:
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();
}
分享到:
相关推荐
1. **两两之差绝对值最小的值**:这是一个关于数组处理的问题,可以通过排序数组然后计算相邻元素之间的差值来解决,最小的差值即为所求。 2. **检查字符是否是整数**:可以通过遍历字符串并检查每个字符是否在'0'-...
初级 Java 程序员面试题笔试题是面向初级 Java 程序员的笔试题,这份文件提供了多个问题,涵盖了 Java 语言的基础知识点,包括面向对象编程、数据类型、运算符、控制流程、数组、字符串等。 描述解释 这份文件提供...
### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...
Java面试题涵盖广泛,从基础到进阶,再到算法、并发、中间件等方面,以下是根据题目内容整理出的知识点详解: 一、Java基础 1. Java的数据类型:包括基本数据类型(整型、浮点型、字符型、布尔型)和引用数据类型...
根据给定的文件信息,...以上就是针对给定的 Java 面试题中涉及的关键知识点的详细介绍。这些知识点涵盖了 Java 编程语言的基础知识、高级特性以及实际应用中的常见问题,对于准备 Java 面试的开发者来说非常有帮助。
以下是一些热门的Java算法面试题及其详细解释: 1. **双指针问题**:常用于解决数组相关的问题,如寻找两个数之和等于目标值,或者在有序数组中查找重复元素等。通过维护两个指针,一个从左向右移动,另一个从右向...
JAVA面试题及答案参考,JAVA面试前刷刷题 JAVA面试题及答案参考是帮助Java开发者准备面试的重要资源。通过刷题,可以熟悉语言的基本概念和应用场景,提高自己的编程能力和分析问题的能力。在面试之前,刷题可以帮助...
### 最新2年经验的Java面试题精析 在IT行业,尤其是软件开发领域,Java作为一门历史悠久且应用广泛的编程语言,其面试题往往能够反映出求职者对这门语言掌握的深度与广度。以下是对“最新2年经验的Java面试题”中...
面试题 2:替换空格(考点: 字符串) 2 面试题 3:从尾到头打印链表(考点: 链表) 2 面试题 4:重建二叉树(考点: 树) 4 面试题 5:用两个栈实现队列(考点: 栈和队列) 5 面试题 6:旋转数组的最小数字(考点:...
### Java面试题详解 #### Statement与PreparedStatement的区别 在Java中,`Statement`和`PreparedStatement`都是用于执行SQL语句的接口,但它们之间存在一些重要的区别: - **Statement**: - `Statement`用于...
Java编程语言在IT行业中占有重要地位,特别是在软件开发和面试环节,算法能力是评估候选人技术实力的关键指标之一。"JAVA经典算法面试39题及答案"这个资源为求职者提供了宝贵的复习材料,涵盖了多种常见的算法问题,...
### Java面试题总结 #### 一、MVC框架与MySQL索引 - **MVC框架**:MVC(Model-View-Controller)是一种常见的软件架构模式,用于将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)...
9. **字符串处理**:KMP算法、Rabin-Karp算法、Boyer-Moore算法等字符串匹配方法,以及字符串的逆序、子串查找等问题。 10. **位运算**:熟练运用位运算进行高效的数值操作,例如快速求幂、判断奇偶、查找数组中的...
### Java面试题大汇总 #### 1. Java基础知识点 Java是一种广泛使用的编程语言,具有平台独立性、安全性高和面向对象的特点。在面试中,理解Java的基本概念、数据类型和核心特性至关重要。 #### 2. 线程 线程是...
+ 题目描述:给出一个字符串,求出斐波那契字符数。 + 知识点:剪枝 + 题目难度:中等 1.5 尺取法 * 算法笔试模拟题精解之“超级区间” + 题目描述:给出一个区间,求出超级区间。 + 知识点:尺取法 + 题目...
### Java常见面试题详解 #### 1\. 一个".java"源文件中是否可以包括多个类(不是内部类)? 在一个`.java`源文件中确实可以包含多个类,但是有以下限制: - 只能有一个公共类(public class),且该类的名字必须...
### 最新Java面试题知识点详解 #### 第一章 初识Java - **Java跨平台原理**:Java的跨平台特性主要得益于字节码文件(`.class`文件)和Java虚拟机(JVM)。Java程序编译成字节码文件后,由不同平台上的JVM解释执行...
### 最全面详细的125道Java面试题解析 #### 1. Java基础知识 - **面试题一:** 当前项目中最关注的一些问题是什么? - **解析:** 这个问题旨在考察应聘者对项目的理解和关注点。在回答时应侧重于技术挑战、团队...
以下是对这些面试题中涉及的知识点的详细解析: 1. **Oracle,MySQL,DB2 三大数据库的相同点和区别**: - 相同点:都是关系型数据库管理系统,支持SQL语言,用于数据存储和管理。 - 区别:Oracle以高性能和复杂...