public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
public static void main(String[] args) {
String str="abaccdeff";
int index=find(str);
if(index!=-1){
char firstShowOnlyOnceElement=str.charAt(index);//charAt() source code:return value[index + offset];
System.out.println(firstShowOnlyOnceElement);
}
}
//return the index of firstShowOnlyOnceElement
public static int find(String str){
if(str==null||str.length()==0){
return -1;
}
int len=str.length();
char[] letters=str.toCharArray();
//In java,'char' is 16 bits,so there are 2^16 characters.
//But we deal with only the 26 English letters in this case.
int[] count=new int[26];//the 'HashTable'
for(int i=0;i<len;i++){
char curChar=letters[i];
count[curChar-'a']++;
}
for(int i=0;i<len;i++){
char curChar=letters[i];//iterate the string,not the HashTable
if(count[curChar-'a']==1){
return i;
}
}
return -1;
}
}
分享到:
相关推荐
该方法返回的是一个整数值,表示目标字符或子字符串在原字符串中第一次出现的索引,如果未找到则返回-1。 `indexOf()`方法的基本语法如下: ```java int indexOf(int ch) int indexOf(String str) ``` 其中,`ch`...
如果我们要统计子串在主字符串中出现的次数,可以在找到一次匹配后,将主字符串的指针移动到匹配结束的位置加上next function的值,这样可以跳过已匹配的部分,继续寻找下一个匹配。 从提供的文件名来看,可能包含...
根据给定的信息,我们可以分析并总结出以下与“求字符串中的第一个数字”相关的知识点: ### 1. 字符串操作基础 #### 1.1 字符串简介 在 Java 中,`String` 类用于表示不可变的字符序列,即字符串。字符串在 Java ...
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符两个程序,vs2013已经验证
Java编程语言在LeetCode平台上的应用广泛,其中第387题“字符串中的第一个唯一字符”是一道典型的字符串处理问题。这道题目旨在考察我们对字符串遍历、哈希映射以及数据结构的理解与运用。下面我们将深入探讨这个...
标题 "获取目标字符串在源字符串第一次出现的下标Demo" 描述的是一个常见的字符串处理问题,通常在编程中,我们可能会遇到需要查找一个子串在主串中首次出现的位置。这个任务可以通过编程语言中的字符串函数或者...
在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。这是因为一个中文字符通常占用多...
在Java编程中,统计字符串中每个字符出现的次数是一个常见的任务,特别是在面试或笔试中作为考察点。这个任务可以通过使用HashMap来实现,因为HashMap提供快速的查找和插入操作,适合处理这种计数的问题。以下是一个...
Java字符串是编程中非常基础且重要的概念,尤其是在Java语言中,字符串处理无处不在。String类在Java中扮演着至关重要的角色,它是不可变的对象,这意味着一旦创建了String对象,就不能更改其内容。这个特性源自于...
在Java编程语言中,字符串...以上只是Java字符串操作的一小部分,实际开发中还有许多其他方法和特性,如国际化(I18N)、正则表达式等,都需要程序员灵活掌握。理解并熟练运用这些操作,能有效提高代码质量和效率。
在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...
- 如果找到了子字符串,则返回子字符串的第一个字符在当前字符串中的索引位置。 - 如果没有找到子字符串,则返回 -1。 ### 3. 示例代码分析 #### 3.1 导入必要的包 ```java import java.util.*; import java.io.*;...
根据提供的标题、描述、标签及部分内容,我们可以总结出以下关于Java字符串处理的相关知识点: ### Java字符串处理技术:中文与英文的兼容性 在Java中,处理字符串是非常常见且重要的任务之一,尤其是在涉及到国际...
本文将围绕“java字符串练习”这一主题,深入探讨如何解析字符串、逆序输出字符串以及处理特定格式的字符串数据。 首先,我们要讨论的是字符串解析。在Java中,我们可以使用`String`类提供的方法或正则表达式来实现...
查询字符串在字符串中的索引位置
在Java编程中,字符串是经常使用的数据类型,用于表示文本信息。本实验主要涉及三个方面的内容:字符串的基本操作,字符串的比较以及不同字符串类(String和StringBuffer)的使用和性能分析。 首先,我们来看第一个...
在Java编程中,经常需要对字符串进行查找操作,尤其是在处理文本分析、数据验证等场景时尤为重要。Java标准库提供了强大的`Pattern`和`Matcher`类来支持正则表达式的使用,使得字符串的查找变得更加灵活和高效。 ##...
在Java编程语言中,字符串(`String`)是极其重要的一个概念,被广泛应用于各种场景之中。为了更好地理解和运用Java语言,掌握字符串的各种操作方法至关重要。下面将详细介绍Java中字符串的一些关键操作方法及其应用...
标题 "比较字符串1" 描述的是一个算法训练问题,旨在比较两个字符串的字典序,并在它们不相等时找出第一个不同的字符。这个问题涉及到的主要知识点包括字符串操作、字典序比较以及基本的ASCII码理解。 首先,我们...
在本压缩包“java-leetcode题解之第415题字符串相加.zip”中,包含的是关于LeetCode第415题“字符串相加”(Add Strings)的Java解决方案。这道题目属于计算机编程领域,特别是Java语言的学习与算法实践。LeetCode是...