String 算法
来源:互联网 发布:淘宝服务市场入驻 编辑:程序博客网 时间:2024/05/18 22:43
String 算法
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ int i = 0; char* str = "abaccdeff"; int ch[256]; memset(ch,0,sizeof(ch)); int len = strlen(str); //用来存放字符串某个字符出现的最后位置(从0开始) int chset[256]; memset(chset,0,sizeof(chset)); //把字符转化为USCII码,然后作为数组下标,如果出现多次,该下标数组值会累加,如果出现一次,那么就是1 for(i=0; i<len; i++) { ch[str[i]-'0']++; //位图初始化全为0 chset[str[i]-'0'] = i; }//添加哨兵 min int min = chset[str[0]-'0']; int k = 0;//遍历寻找数组ch值为1,并且出现的位置在chset数组中最小的字符 for(i=0; i<len; i++) { if(ch[str[i]-'0'] == 1) { if(chset[str[i]-'0'] < min) { min = chset[str[i]-'0']; k = i; } } } printf("in str:%s\nfirst apprear once is %c\n",str,str[k]); system("PAUSE"); return 0;}
之前有篇博客http://blog.chinaunix.net/uid-9950859-id-98760.html?page=2
给出的解决思路有个问题,字符串必须是顺序的,否则会出现bug,这里给出的算法,可以无视顺序这个问题。
0 0
- String 算法
- STL算法和String
- String中hashCode算法
- String and STL 算法
- STL算法和String
- std::string常用算法
- String匹配算法小节
- power string kmp算法
- String indexOf 算法
- 算法与数据结构 - String
- string KMP算法理解
- 字符串String 算法题
- 【算法】String To Integer
- 算法之 String 篇
- KMP算法 c++ string
- 算法规律 rotate String
- 质疑String的匹配算法
- std::string and stl 算法
- 前端编码规范
- shift后门制作和禁止
- 统计Oracle数据库文件的大小
- 自学MFC一个半月,花了3天时间做了一个俄罗斯方块
- spring mvc知识点汇总
- String 算法
- Reveal查看任意app的高级技巧
- 15HD_OJ——献给杭电五十周年校庆的礼物
- 五十五 毕业前的狂欢
- Web service知识点笔记
- 比ListView和GridView更加高效的RecyclerView
- String Buffer
- 五十六 毕业证书
- RAISE_APPLICATION_ERROR用法