2018校招网易笔试——最长01交错子串
来源:互联网 发布:gal 知乎 编辑:程序博客网 时间:2024/06/07 07:46
题目如下:
如果一个01串任意两个位置的相邻的字符都是不一样的,就叫这个01串为交错01串,要求出一个最长的交错01子串,输入字符串s,和s的长度length。输出子串的长度。
做题思路如下:
1、这是一个动态规划问题,可以定义一个数组,长度为和s相同,存放到i为止的最长交错01子串长度;
2、到第i个元素为止的子串长度为:若i和i-1的值不一样,子串长度为i-1的子串长度加一,若值相同,子串长度为初始值1;
3、得到数组之后,取其中最大值即为所求的01交错子串的长度。
具体的c++代码如下:
#include <iostream>
#include<vector>
#include<string>
using namespace std;
int stringlenth(string &s,int length)
{
int i;
vector<int> res(length,1);
for(i=1;i<length;i++)
{
if(s[i]!=s[i-1])
{
res[i]=res[i-1]+1;
}
}
int maxlong=res[0];
for(i=1;i<length;i++)
{
if(res[i]>maxlong)
{
maxlong=res[i];
}
}
return maxlong;
}
int main()
{
string s;
cin>>s;
int length=s.size();
int resnum= stringlenth(s,length);
cout<<resnum<<endl;
return 0;
}
- 2018校招网易笔试——最长01交错子串
- 2018网易秋招内推笔试题——交错01串
- 网易2018校招内推笔试-交错01串
- 网易笔试:交错01串
- 2018网易校招编程题(3)交错01串
- 2018网易内推笔试-交错01串(python)
- 网易2018内推笔试题解析(交错01串)
- 网易2018内推_算法工程师_笔试题_交错01串_C/C++
- 交错01串-网易2018校招内推
- 字符串子串(网易2017春招笔试题)
- 2018网易游戏校招笔试题
- 【网易】2018校招笔试题
- 网易校招笔试-暗黑串
- 网易2017秋招笔试题3:最长公共子括号序列长度
- 2018校招笔试题——网易编程题跳石板
- 2018网易校招笔试题——web前端开发
- 网易校招笔试题
- 网易2017校招笔试
- 算法之选择排序
- 编程挑战1——求逆置回文最少转换次数
- TPshop学习(9)银联支付
- leetcode Path Sum II
- [JS] jQuery与table
- 2018校招网易笔试——最长01交错子串
- 【HDU 6113 度度熊的01世界 】 & DFS
- POJ
- Visual Assist 返回下一个光标点的设置
- IDEA Spinrg boot 热部署配置
- 基于socket的TCP和UDP通讯的简单建立
- springioc容器学习第三篇----ApplicationContext容器初始化
- h5面试 &&和||的坑,你踩过吗?
- javascript中事件循环机制