給定乙個字串,輸出字串中最長的數字串,並把這個數字串的長度輸出。
請乙個在字串中找出連續最長的數字串,並把這個串的長度返回;如果存在長度相同的連續數字串,返回最後乙個連續數字串;
注意:數字串只需要是數字組成的就可以,並不要求順序,比如數字串「1234」的長度就小於數字串「1359055」,如果沒有數字,則返回空字串(「」)而不是null!
輸入描述:
乙個字串
輸出描述:
輸出最長的數字串,輸出最長數字串個數;
中間以逗號(,)隔開;
示例1
輸入
abcd12345ed125ss123058789
輸出
123058789,9
備註:
1、如果存在長度相同的連續數字串,則輸出最後乙個連續數字串;
2、數字串只需要是數字組成的就可以,並不要求順序,比如數字串「1234」的長度就小於數字串「1359055」;
3、如果沒有數字,則輸出空字串(「」)而不是null;
遍歷字串,遇到數字時開啟內層迴圈直到到達數字結尾,更新最長字元及其長度。
輸入描述:#include
#include
using
namespace
std;
int main()
if(tmp_str.size() > max_len)else
if(tmp_str.size() == max_len)
output = tmp_str;
}tmp_str.clear();
}cout
<","
《只保留字串的首尾。
# include
# include
using namespace std;
bool is_num(char x)
int main()
start = end;
}cout<","
《根據數值占用bit數,按順序從輸入位元組流中解析出對應數值,解析順序按輸入陣列astelement索引公升序;
void decode(unsigned int uiinputlen, unsigned char ainputbyte, unsigned int uielementnum, element_stru astelement);
unsigned int uiinputlen:位元組陣列(流)長度
unsigned char ainputbyte:位元組陣列(流)
unsigned int uielementnum:解析數值個數
element_stru astelement:數值的結構陣列指標,含義如下
struct
element_stru;
輸入描述:
位元組陣列長度uiiutputlen為3;
位元組陣列ainputbyte[3]為,對應二進位制為「0110 0010, 1000 0000, 0000 0000」;
解析數值個數uielementnum為2;
數值[0]的值佔4個bit,即astelement[0].uielementlength = 4;
數值[1]的值佔5個bit,即astelement[1].uielementlength = 5;
輸出描述:
數值[0]的值為6,二進位制為「0110」,即astelement[0].uielementvalue = 6;
數值[1]的值為5,二進位制為「0010 1」,即astelement[1].uielementvalue = 5;
示例1
輸入
3 0x62 0x80 0x00
2 4
5輸出6 5
花了好大功夫才看懂這道題的意思。它的意思是,位元組流中的各元素是以二進位制01的形式連續排列的,指定bit的個數以從二進位制位元組流取出若干bit,然後轉化為十進位制輸出。例如 0x62 0x80 實際上連在一起是 0110 0010 1000 0000,輸入4,表示取4個bit得到0110,轉化為十進位制是6,接著輸入5,表示接著取5個bit得到00101,轉化為十進位制是5。另外,這道題的難點主要在於進製準換以及相關的輸入操作。
#include
#include
#include
using
namespace
std;
int main()
int time; cin >> time;
vector
times(time);
for(int i=0; i < time; ++i)
vector
bits;
for(int num: nums)
}int start = 0;
long
long result = 0;
for(int time: times)
cout
<< result << endl;
result = 0;
start += time;
}return
0;}
輸入兩個長整數,以空格隔開
輸出描述:
輸出相乘後的結果
示例1
輸入
-12341234
43214321
輸出
-533318047612114
這題主要考察大數運算,基本上做法都是轉化成字串,實現兩個數的乘法(小學學過的那種),實現關鍵在於進製。此外,還要留意輸入數字可能是負值,在字串處理時要注意。
【牛客網】[程式設計題]在字串中找出連續最長的數字串#include
#include
#include
using
namespace
std;
int multiply(const
string strmultipliera, const
string strmultiplierb, string &strrst)}}
//判斷結果有幾位
while (lenc--)
}char ch;
for (int i = strrst_length - 1; i >= 0; i--) //把結果放入字串中
if (strrst.empty())//如果結果為0,則輸出字串為「0」
strrst = "0";
return0;}
int main(void)
if(b[0]=='-')
string strrst = "\0";
multiply(a, b, strrst);
if(neg_count==1)
cout
<<"-";
cout
<< strrst0;}
【部落格】oj 系列之位元組流解析
【部落格】兩個任意長度的長整數相乘(華為oj,c++)
網易春招筆試題
網易2017年3月26日中午的實習生招聘裡面有道程式設計題,大概是說有乙個圍棋格仔,每乙個塊為白色或黑色,小易會找出列方向上顏色相同並且連著的區域,並最長,將其塗為紅色。第一行輸入棋盤的大小,如3,後面依次是棋盤的顏色,w是white白色,b是black黑色 bwbbbb bww 那麼很明顯第一列有...
華為2018春招筆試題目 位元組流解析與長整數相乘
位元組也叫byte,是計算機資料的基本儲存單位,bit儲存內容是0和1,bit是計算機中最小的儲存單位 乙個byte是由8個bit組成,它是最小的可定址單元 1個位元組等於8位二進位制。1b byte 8b bit 八個bit可以儲存基本的元素 2 8數 例如 abcd1234和各種符號 在asci...
2018騰訊春招筆試題(4月5日)
題目描述 小q定義了一種數列稱為翻轉數列 給定整數n和m,滿足n能被2m整除。對於一串連續遞增整數數列1,2,3,4 每隔m個符號翻轉一次,最初符號是 例如n 8,m 2,數列就是 1,2,3,4,5,6 7,8 而n 4,m 1,數列就是 1,2,3,4。小q現在希望你能幫他算算前n項和為多少。輸...