找出字符串中第一个不重复的字符(JavaScript实现)

如题~

此算法仅供参考,小菜基本不懂高深的算法,只能用最朴实的思想去表达。

 1 //找出字符串中第一个不重复的字符
 2 // firstUniqueChar("vdctdvc"); --> t
 3 function firstUniqueChar(str){
 4   var str = str || "",
 5       i = 0,
 6       k = "",
 7       _char = "",
 8       charMap = {},
 9       result = {name: "",index: str.length};
10
11   for(i=0;i<str.length;i++){
12     _char = str.charAt(i);
13     if(charMap[_char] != undefined){
14       charMap[_char] = -1;
15     }else{
16       charMap[_char] = i;
17     }
18   }
19
20   for(k in charMap){
21     if(charMap[k]<0){
22       continue;
23     }
24     if(result.index>charMap[k]){
25       result.index = charMap[k];
26       result.name = k;
27     }
28   }
29
30   return result.name;
31 }

时间: 2024-10-10 07:21:29

找出字符串中第一个不重复的字符(JavaScript实现)的相关文章

华为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

找出字符串中第一个出现次数最多的字符

找出字符串中第一个出现次数最多的字符 详细描述: 接口说明 原型: bool FindChar(char* pInputString, char* pChar); 输入参数: char* pInputString:字符串 输出参数(指针指向的内存区域保证有效): char* pChar:出现次数最多的字符 返回值: false 异常失败 true  输出成功 #include <iostream> #include <string.h> using namespace std; b

查找字符串中第一个不重复的字符

import java.util.*; public class GetFirstNoRepeatChar{ static char getChar(String s){ int len=s.length(); int len_tim=128; char c='F'; int []tim=new int[len_tim]; //以字符做下标,存储该字符出现次数 for(int i=0;i<len;i++){ c=s.charAt(i); tim[c]+=1; } //遍历,取得 for(int

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

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",

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

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

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

// 一个字符串由[a-z]组成,请找出该字符串第一个只出现一次的字母: var str = "354691236549870213654789501287i45465444" var obj = {};//去重 for(var i = 0; i < str.length;i++){ var count = 1: obj[str[i]] = count: } arr = Object.keys(obj): var arr_ = []: for(i in arr){ var num

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

输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-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

找出字符串中最长不重复的子串

这题 是群里一个人发出来的  我就试着去做了下 他们说 这题蛮水的 我擦了-.- 花了很长时间 在原有的代码上 修改了很多 自己测了很多组数据 觉得应该对了 我的方法应该是 hash的思想 但这边我是直接用了map去存 也没差 假如有个字符串是abbcda 那么我们应该在遍历到第二个b的时候 计算出此时的 len 并且将在b之前的字符 重置为 未访问 我的思想就是这样的 - 觉得 看代码可以读懂. 1 #include <iostream> 2 #include <cstring>

找出字符串中最长不重复子串

public class AE { public static void main(String[] args) { //String s = "abacdecfgab"; String s = "abacdbe"; System.out.println(noDuplicate(s)); } public static String noDuplicate(String str) { String sub = ""; String result