網易2018內推 演算法工程師 筆試題 交錯01串

2021-08-07 07:30:38 字數 954 閱讀 5734

如果乙個01串任意兩個相鄰位置的字元都是不一樣的,我們就叫這個01串為交錯01串。例如: 「1」,」10101」,」0101010」都是交錯01串。

小易現在有乙個01串s,小易想找出乙個最長的連續子串,並且這個子串是乙個交錯01串。小易需要你幫幫忙求出最長的這樣的子串的長度是多少。

輸入描述:

輸入包括字串s,s的長度length(1 ≤ length ≤ 50),字串中只包含'0'和'1'
輸出描述:

輸出乙個整數,表示最長的滿足要求的子串長度。
示例1

輸入

111101111
輸出

輸出
3
解題思路:利用01串前後不相同的特點,以此作為01串的分界點,每次都儲存新的01串,並比較其長度大小,返回最長01串的長度。

#include 

using

namespace

std;

bool compare(int a, int b)

int main()

}if(i==n)

vec.push_back(count-1);

sort(vec.begin(),vec.end(),compare);

cout

<< vec[0] << endl;

return

0;}

關於sort()函式預設按不降序排列,也可參照下列方法輸出最大值:

int

max = vec_max.size();

sort(vec_max.begin(), vec_max.end());

cout << vec_max[max-1] << endl;

愛奇藝2018演算法工程師筆試

如果乙個字串s是由兩個字串t連線而成,即s t t,我們就稱s叫做平方串,例如 aabaab x 都是平方串.牛牛現在有乙個字串s,請你幫助牛牛從s中移除盡量少的字元,讓剩下的字串是乙個平方串。換句話說,就是找出s的最長子序列並且這個子串行構成乙個平方串。輸入描述 輸入乙個字串s,字串長度lengt...

快手 演算法工程師 筆試

1.給定整數k和n,將n分為k個數,這k個數相加等於n。求這個k個數的最大乘積。1 k 10,1 n 1000 int main else if m n else if m n for int i 0 i k i cout return0 盲猜 分成的k個數大小相近的時候,k個數的乘積最大,僅僅是猜...

2018巨峰科技演算法工程師筆試題

a yuv420b yuv444c rgb d h.264 e jpeg 答案 ab 2 下列哪些是人工設計的特徵 a haarb cnn c hog d sift scale invariant feature transform haar特徵分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵,組...