查找字符串
来源:互联网 发布:淘宝退款要多久 编辑:程序博客网 时间:2024/06/18 12:24
找出指定字符串中最后一个只出现一次的字符,若全部字符都有重复,则返回最后一个重复最多的字符。
char findLastChar(const char *string);
示例:
输入:“abbccdffgg”
返回:“d”
输入:“aaabbbccddee”
返回:“b”
#include <iostream>#include <string.h>using namespace std;char findLastChar(const char* string);int binarySearch(char *srcArray,char des);int main(){ char string1[11]="abbccdffg"; char string2[19]="aabbbccdddeeeee"; char s1,s2; s1=findLastChar(string1); cout << s1<<endl; s2=findLastChar(string2); cout << s2<<endl; return 0;}char findLastChar(const char* string){ char c[27]="abcdefghijklmnopqrstuvwxyz"; char temp; int cnt[26]={0}; int L,num; L=strlen(string); for(int i=0;i<L;i++) { num=binarySearch(c,string[i]); //cout<<"num="<<num<<endl; if(num!=-1) cnt[num]=cnt[num]+1; //cout<<"cnt["<<num<<"]="<<cnt[num]<<endl; } for(int j=L-1;j>=0;j--) { if(cnt[j]==1) { temp=c[j]; break; } } if(!temp) { int max=0,index; for(int k=0;k<L;k++) { if(cnt[k]>=max) { max=cnt[k]; index=k; } } temp=c[index]; } return temp;}int binarySearch(char *srcArray,char des){ int low=0; int high=strlen(srcArray); while(low<=high) { int middle=low+((high-low)>>1); int x=high-low; int y=x>>1; //cout<<low<<"----"<<high<<"----"<<x<<"----"<<y<<endl; if(des==srcArray[middle]) { return middle; }else if(des<srcArray[middle]) { high=middle-1; } else { low=middle+1; } } return-1; }
阅读全文
0 0
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 查找字符串
- 字符串查找
- 字符串查找
- 查找字符串
- 查找字符串
- 字符串查找
- 查找字符串
- 查找字符串
- 字符串查找
- 查找字符串
- 字符串查找
- 字符串查找
- 字符串查找
- 第十章 会话管理(二) 会话管理器
- 在Linux下创建7种类型的文件
- 给深度学习入门者的Python快速教程
- 为什么你应该(从现在开始就)写博客
- Giraph中的分区数目计算
- 查找字符串
- 初识spring boot
- iOS学习笔记-125.SDWebImage1——基本使用
- oracle group by ,count,sum 函数 日常使用小知识
- Python学习笔记(八)爬虫基础(正则和编解码)
- Hadoop集群搭建
- VLC框架总结(一)VLC源码及各modules功能介绍
- C语言实现通过日期计算这是一年中的第几天
- QWtplot