C++面试题算法
#include <iostream>
#include <string>
using namespace std ;
/*
题目:给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。
用C/C++语言写一函数完成该算法,给出复杂度
这道题的最终目的是找到最长的连续字符串
*/
struct SubStringInfo
{
int maxSubStrLength ;//最长字符串的长度
string str ;//最长字符串
}strData;
bool Check(string &str,string substr) //检测某字符串是否连续
{
int pre ; //前串
int next;//后串
if(str.length()==substr.length())
return false ;
pre=str.find(substr); //查找字符串出现的位置
if(pre==-1) return false; //如果找不到那么返回 string::npos到头 -1
next=str.find(substr,pre+substr.length());
if(next==pre+substr.length())
return true ;
return false;
}
void SearchString(SubStringInfo &info,string &str)
{
int len=str.length() ;//获取string长度
string eachMaxString="";
string tem="";
bool ret=false ;
int index=0 ;
for(int i=1;i<=len;i++) //每个子串长度
{
index=0;
cout<<"Sub String Length:"<<i<<": "<<endl ;
for(int j=len-i+1;j>0;j--)//该长度的子字符串有多少个
{
tem=str.substr(index,i);//获取子字符串
cout<<"index="<<index<<" "<<"i="<<i<<" "<<tem<<" " ;
index++;
ret=Check(str,tem) ;//检测
if(ret)
{
if(tem.length()>info.maxSubStrLength)
{
info.maxSubStrLength=tem.length() ;//保存长度
info.str=tem ;
}
}
}
cout<<"\n";
}
}
void main()
{
strData.maxSubStrLength=0; //初始化结构体
strData.str="";
string str ; //接受要输入的字符串
cout<<"输入字符串:"<<endl ;
cin>>str ;
SearchString(strData,str) ;//搜索字符串
cout<<"最长的连续字符串为:"<<strData.str<<endl;
}
C++面试题算法的更多相关文章
- 蓝桥杯——试题 算法训练 Yaroslav and Algorithm
试题 算法训练 Yaroslav and Algorithm 资源限制 时间限制:100ms 内存限制:128.0MB 问题描述 (这道题的数据和SPJ已完工,尽情来虐吧!) Yaroslav喜欢算法 ...
- 简答一波 HashMap 常见八股面试题 —— 算法系列(2)
请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注 ...
- JS面试题-算法台阶问题
有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后 ...
- Java数据结构和算法总结-字符串及高频面试题算法
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说 ...
- [ Java面试题 ]算法篇
1.堆和栈在内存中的区别是什么? 概念: 栈(stack)是为执行线程留出的内存空间.当函数被调用的时候,栈顶为局部变量和一些 bookkeeping 数据预留块.当函数执行完毕,块就没有用了,可能在 ...
- Java数据结构和算法总结-字符串相关高频面试题算法
前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔 ...
- 直面Javascript面试题算法思路
一.字符串遍历类 1.获取符合条件的字符 思路:一般使用正则表达式会比遍历字符串简单.a=str.match(reg),a即为所得. 例子:a.判断字符串是否是这样组成的,第一个必须是字母,后面可以是 ...
- 蓝桥杯 试题 算法提高 宰羊 DP解决
问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居 ...
- 蓝桥杯——试题 算法训练 Sereja and Squares
Java 代码 ```` import java.util.Scanner; public class Main { private static long num = 0; private stat ...
随机推荐
- ActionBar官方教程(10)ActionBar的下拉列表模式
Adding Drop-down Navigation As another mode of navigation (or filtering) for your activity, the acti ...
- string.Split函数
正文 string str = "a---b---c"; string[] array = str.Split(new char[]{'-'}); 分割之后array中的元素为 分 ...
- HTML本地测试成功后上传博客注意事项
需要注意不要跟博客已经存在的样式(CSS)或功能(JavaScript)起冲突 功能名一定不要一样 样式名尽量不一样 如果样式名一样,存在属性名的对应属性值尽量跟博客内相同
- hdu4649Professor Tian
http://acm.hdu.edu.cn/showproblem.php?pid=4649 枚举当前状态是0或者是1的概率 其实就枚举1的概率 最后概率乘这个数 位运算用得不熟 老出错 #incl ...
- POI导出数据内存溢出问题
POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好.3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWo ...
- Mysql监控工具小集合
介绍一些常见的Mysql监控工具. Cacti Cacti是 一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过snmpget来获取数据,使用 RRDtool绘 ...
- Set up your first C# test with NUnit or resharper
此链接为一种方式,用Nunit单元测试驱动测试代码 http://relevantcodes.com/using-nunit-to-execute-selenium-webdriver-tests/ ...
- SR4K的API使用(libMesaSR.dll)
看看libMesaSR.dll的导出函数: 遇到的问题: error C4430: 缺少类型说明符 - 假定为 int.注意: C++ 不支持默认 int 解决: HWND等未定义 解决: #incl ...
- keystone 手动建立租户,用户,角色,服务,端口
建立租户: root@cloud:~# keystone tenant-create --name=admin WARNING: Bypassing authentication using a to ...
- zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】
Burning Bridges Time Limit: 5 Seconds Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...