最近研究輸出字符串,稍微總結(jié)一下,以后繼續(xù)補(bǔ)充:
????標(biāo)題如下:
????The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
????
1
is read off as
"one 1"
or
11
.
11
is read off as
"two 1s"
or
21
.
21
is read off as
"one 2
, then
one 1"
or
1211
.
????Given an integer n , generate the n th sequence.
????Note: The sequence of integers will be represented as a string.
????分析:題意是n=1時(shí)輸出字符串1;n=2時(shí),數(shù)前次字符串中的數(shù)值個(gè)數(shù),因?yàn)榍按巫址?個(gè)1,所以輸出11;n=3時(shí),由于前次字符是11,有2個(gè)1,所以輸出21;n=4時(shí),由于前次字符串是21,有1個(gè)2和1個(gè)1,所以輸出1211;順次類推。
????此題我沒有找到數(shù)學(xué)律規(guī),且暫就用最簡(jiǎn)略的法想做,關(guān)鍵是考核string的作操。
????碼代如下:
?string numbertostring(int & num)
??? {
??????? string tmp;
??????? if(num<=9)
??????? {
?????????? tmp.push_back(num + '0');
??????? }
??????? else
??????? {
??????????? vector<int> over10num;??????????????????????????????? ?
??????????? while(num>0)??????????????????????????????? ?
??????????? {??????????????????????????????????? ?
??????????????? over10num.push_back(num%10);
??????????????? num = num/10;??????????????????????????????? ?
??????????? }??????????????????????????????? ?
??????????? int len_num = over10num.size();??????????????????????????????? ?
??????????? for(int k=len_num-1;k>=0;--k)
??????????? {
??????????????? tmp.push_back(over10num[k] + '0');
??????????? }
??????? }
??????? return tmp;
??? }
??? string countAndSay(int n) {
??????? string s;
??????? if(n<=0)return s;
??????? s.push_back('1');
??????? int number=1;
??????? while(number!=n)
??????? {
??????????? string tmp;
??????????? int length = s.length();
??????????? for(int i=0;i<length;)
??????????? {
??????????????? int num=1,j=i+1;
??????????????? while(j<length&&s[j]==s[i])
??????????????? {
??????????????????? num++;
??????????????????? j++;
??????????????? }
??????????????? tmp+=numbertostring(num);
??????????????? tmp+=s[i];
??????????????? i=j;
??????????? }
??????????? number++;
??????????? s=tmp;
??????? }
??????? return s;
??? }
????
文章結(jié)束給大家分享下程序員的一些笑話語(yǔ)錄: 據(jù)說有一位軟件工程師,一位硬件工程師和一位項(xiàng)目經(jīng)理同坐車參加研討會(huì)。不幸在從盤山公路下山時(shí)壞在半路上了。于是兩位工程師和一位經(jīng)理就如何修車的問題展開了討論。
硬件工程師說:“我可以用隨身攜帶的瑞士軍刀把車壞的部分拆下來,找出原因,排除故障。”
項(xiàng)目經(jīng)理說:“根據(jù)經(jīng)營(yíng)管理學(xué),應(yīng)該召開會(huì)議,根據(jù)問題現(xiàn)狀寫出需求報(bào)告,制訂計(jì)劃,編寫日程安排,逐步逼近,alpha測(cè)試,beta1測(cè)試和beta2測(cè)試解決問題。”
軟件工程說:“咱們還是應(yīng)該把車推回山頂再開下來,看看問題是否重復(fù)發(fā)生。”
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
