給你乙個字串,全部都用大寫字母組成,如有按順序排列的連續子串且子串長度大於等於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矩陣表示,並且要求矩陣的大小盡可能的小 為了確保輸出的順序盡可能的和書寫的順序...