在字符串中找出第一个只出现一次的字符
来源:互联网 发布:微信授权回调域名出错 编辑:程序博客网 时间:2024/06/05 01:17
传统思路 就是遍历字符串,访问某个字符时和后面的每个字符对比,如果没有重复就返回,如果有就向后遍历;这种时间复杂度为O(n*n);空间O(1);
新颖: 利用哈希表,把字符串的ASCII码作为Key,在字符串出现的次数作为value 然后遍历两次字符串即可得到结果;
代码:
int FirstNotRepeatingChar(string str) {
if(str.size()==0)
return -1;
//每个字符占8位共有256种可能
int hash[256];
for(int i=0;i<256;i++)
hash[i]=0;
int index=0;
while(str[index]!='\0'){
hash[str[index]]++;
index++;
}
index=0;
while(str[index]!='\0'){
if(hash[str[index]]==1)
return index;
index++;
}
return -1;
}
阅读全文
0 0
- 找出字符串中只出现一次的第一个字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- 找出字符串中第一个只出现一次的字符
- select设置默认文本的方法,相当于placeholder
- JSONObject,JSONArray,Map,String之间转换
- 使用miracl实现国密sm2算法
- Spring4.X系列之AOP-@AspectJ
- 适配iOS11&iPhoneX的一些坑
- 在字符串中找出第一个只出现一次的字符
- input标签内容改变的触发事件
- 利用NFS挂载一块磁盘
- android studio 导入github项目需要修改gradle信息
- php微信公众号模板消息主动推送
- 今天看到一个面试题,要求查询一个有姓名,分数,科目的表 变为根据科目分类
- 有关微信退款 1.签名错误;2.可退款的余额不足 问题的记录
- runTime runLoop
- javascript 读取本地txt文件