查找字符串中第一个只出现一次的字符

Java Map接口提供了将Key映射到值的对象,HashMap  TreeMap

方法 功能
put(K key ,V value) 向集合中添加指定key ,value的映射关系
containsKey(Object key) 查看是否包含指定key的映射关系,返回true
containsValue(Object value) 此映射将一个或多个key映射到指定的value值,返回true
get( Object key) 返回指定key的value值,否则返回null
keySet() 返回所有key对象形成的set集合
values() 返回所有值对象形成的Collection集合

算法题 :在字符串中找出第一次只出现一次的字符。

 1 package offer;
 2
 3 import java.util.HashMap;
 4
 5 public class find_char {
 6
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9 get("abcdefacbwqewwwwewqew");
10     }
11
12     public static void get(String s){
13         HashMap<String ,Integer> map=new HashMap<String,Integer>();
14         char[] cs=s.toCharArray();
15         for(int i=0;i<cs.length;i++){
16             if(map.containsKey(cs[i]+"")){ //查看是否包含指定键值的映射关系
17                 map.put(cs[i]+"",(map.get(cs[i]+"")+1 ));//get函数 返回指定key键对应的值,否则返回null
18             }
19             else{
20                 map.put(cs[i]+"",1);
21
22                 }
23             }
24         for(int j=0;j<cs.length;j++){
25             if(map.get(cs[j]+"")==1){  //get()返回指定键值key对应的value;
26                 System.out.println(cs[j]);
27                 break;
28
29             }
30         }
31     }
32 }
时间: 2024-10-04 00:15:10

查找字符串中第一个只出现一次的字符的相关文章

求字符串中第一个只出现一次的字符

问题描述:给定一个字符串,假设字符串中只包含字母和数字,求出这个字符串中第一个只出现一次的字符. 分析:这个题目想要做出来还是比较简单的,关键是如何用高效的方法求解.这里我提供两种方法: 解法一:蛮力法.具体思想为,从第一位开始,拿每一位和后面的每一位进行比较,如果没有出现,则直接输出这个字符. 如果出现,则从第二位开始,再和后面的每一位进行比较,依次类推. 算法的时间复杂度为O(n^2). 解法二:哈希法.采用两次扫描即可实现.需要提前构建一个哈希表,把字符当成key值,把出现的次数当成val

找出字符串中第一个只出现一次的字符

find the first unique character in  a string and you can just traverse this string only one time. if there is no such character, just return '#' and '#' will not appear in the string, else return the character you find. for example: "aAbBABac",

字符串中第一个只出现一次的字符,如何优化算法使得遍历次数更少?

/** * 只允许遍历一遍字符串 */ public class 找出字符串中第一个只出现一次的字符 { public static void main(String[] args) { // 测试字符串 String str = "asdsacjj"; // 字符串转化成字符 char[] strToChar = str.toCharArray(); int len = strToChar.length;//字符串长度 //hashset用于判断是否出现过 HashSet<Ch

华为OJ:找出字符串中第一个只出现一次的字符

可以稍微让代码写的好看,不用直接写双循环的话,就可以写成函数的调用,重用性也很高. import java.util.Scanner; public class findOnlyOnceChar { public static boolean FindChar(String pInputString, char pChar){ int count=0; for(int i=0;i<pInputString.length();i++){ if(pInputString.charAt(i)==pCh

《剑指offer》第五十题I:字符串中第一个只出现一次的字符

// 面试题50(一):字符串中第一个只出现一次的字符 // 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出 // 'b'. #include <cstdio> #include <string> char FirstNotRepeatingChar(const char* pString) { if (pString == nullptr) return '\0'; const int tableSize = 256; //c

字符串中第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符.比如"lavor_zl"第一个只出现一次的字符是'a'. 解题思路: C/C++字符使用Ascii编码,一个字符占一个字节即可以表示2的8次方个数,那么C/C++字符可以表示的256个字符,因此可以用一个256的数组来保存各个字符出现的次数,当然256个字符的Ascii值是0-255之间的所有数,而且'\0'的Ascii值0,所以可以用数组的下标来表示记录的是哪一个字符的个数.然后再遍历一次字符串,找出第一个只出现一次的字符. 算法实现:

35 - 找出字符串中第一个只出现一次的字符

在一个字符串中找到第一个只出现一次的字符. 如输入"abaccdeff",输出'b' 解析: 使用一个数组,记录每个字符出现的次数,最后遍历计数数组,第一个个数为 1 的即为结果. 由于字符char,只有8 bit, 只有255种可能,因此只需声明一个255大小的数组. 遍历一次字符串,遍历2次计数数组:时间复杂度O(n) 空间占用255*int = 512 Byte,是一个固定大小:空间复杂度O(1) 当需要统计某个或某些字符是否出现或出现在字符串中的次数时,可以通过数组实现一个简易

[华为]找出字符串中第一个只出现一次的字符

输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 输入例子: asdfasdfo 输出例子: o 1 //用哈希统计词频 2 #include<iostream> 3 #include<string> 4 using namespace std; 5 int hasTable[256]; 6 7 int main() 8 {     9 string s;     10 while(cin>>s) 11 {         12

寻找字符串中第一个只出现一次打字符

代码如下: #include <iostream> #include <string> using namespace std; char findfirstoncechar(string &str) { int arr[255] = {0}; int i; for (i = 0; i<str.size();i++) { arr[str[i]]++; } for(i = 0; i < 255 ; i++ ) { if(arr[i] == 1) { return