每日一題之 網易遊戲(研發崗)

2021-08-27 14:21:15 字數 1593 閱讀 6085

給你乙個字串,全部都用大寫字母組成,如有按順序排列的連續子串且子串長度大於等於4的時候那就把這種子串表示為開頭的的字元+』-『+結尾的字元的形式。比如 xyzabcd 最後轉換為 xyza-d

思路:直接模擬,記錄每個子串的起始位置和終止位置

#include 

#include

#include

#include

using

namespace

std;

void solve(string s)

ed = i+1;

}else

else

if (ed-pos+1 >= 4)

else

res.push_back(s[i]);

pos = -1;

ed = -1;}}

for (int i = 0; i < (int)res.size(); ++i)

cout

<< res[i];

cout

<< endl;

}int main()

return

0;}

把乙個數n(十進位制)的x進製和y進製寫到一起了,形成了乙個字串z,現在給定x,y,z,問這個數n是多少

思路:用乙個mid指標暴力從字串的中間列舉,前面的部分看做是x進製的數,後面部分看做是y進製的數,然後轉換成十進位制之後比較兩部分的大小,然後左移或者右移mid指標,直至兩個數相等,(我提交的時候只過了40的資料,後面想到中間過程可能會爆int 或許會卡這裡)

#include 

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

mapmp;

string s;

int len;

void init()

else

}}long

long cal(double a,double b, int flag,int mid)

//cout << r1 << endl;

long

long r2 = 0;

for (int i = len-1; i > mid; --i)

if (flag == 1) return r1;

else

return r2;

}long

long solve(double a,double b,string s)

else

if (r1 > r2)

else

if (r1 == r2) return r1;

}//cout << r1 << endl;

}int main()

return0;}

/*35 2 113221101000101

13 7 1016

4 12 2222248a

*/

每日一題之 網易有道演算法崗筆試題 二分

描述 給乙個整數n,n表示貝殼數量,然後a和b輪流取貝殼數,a先手,每次取固定的m個,b後手,每次取剩下貝殼的1 10,向下取整。這樣取貝殼直到取完,問a如果要獲得至少一半的貝殼,問a最少要取的m數量是多少?n 1e18 input 10output 1思路 二分m就好了,按取貝殼方式取,最後判斷a...

Python每日一題之0001 0002

第 0002 題 將 0001 題生成的 200 個啟用碼 或者優惠券 儲存到 mysql 關係型資料庫中。如下 import random import string import mysql.connector import time def rndchar return join random...

每日一題之 hiho232周 拆字遊戲

給出乙個01矩陣,1佔據的部分即為需要拆的字,如果兩個1分享一條邊,那麼它們連通。連通具有傳遞性,即如果a b連通,b c連通,則a c連通。連通的一系列1被看做可以拆出的一塊,現在小kui需要輸出這些拆出的塊 用乙個01矩陣表示,並且要求矩陣的大小盡可能的小 為了確保輸出的順序盡可能的和書寫的順序...