统计一个字符串中每个字母是否只出现了一次

来源:互联网 发布:软件项目实施报告 编辑:程序博客网 时间:2024/06/06 16:30

因为字符的范围是0-255 所以建立一个长度为256的布尔数组,每次遍历都把相应位置设置为true,如果在某次遍历时候,相应位置已经是true,则证明该字母已经出现过了,就返回false。

另外还可以STL的map来做,也可以用计数排序来做,建立辅助数组,每次相应位置自增1,最后遍历该辅助数组,如果出现大于1的元素,则返回false

第一种解法如下

#include <iostream>#include <string>using namespace std;bool AppearOnce(string str){  int i=0;  bool b[256];  for(i=0;i<str.length();i++)  {    if(b[str[i]]==true){  return false;}b[str[i]]=true;  }  return true;}int main(){   string test="abca";
   bool ret=AppearOnce(test);   return 0;}


0 0
原创粉丝点击