題目1:
給定乙個字串,請你將字串重新編碼,將連續的字元替換成「連續
出現的個數+字元」。比如字串aaaabccdaa會被編碼成4a1b2c1d2a。
.統計連續出現的字元數目.注意數字字串之間轉換,別要在這些細節上浪費太多時間,要不然後邊題沒時間做!**:
#include
#include
int main()
// kong zi fu
int cnt =1 ;
for(int i =1 ; i< s.length(); i++)
if(s[i-1]==s[i])cnt++;
else
std::stringstream ss;
std::string str;
ss<>str;
res = res +str +s[s.length()-1];
std::cout
0;}
.題目2:
在乙個n*n的陣列中尋找所有橫,豎,左上到右下,右上到左下,四種方向的直線連續d個數字的和裡面最大的值
.可優化之處在於」連續」 n 個數字和,n大於等於d,每次當和中包含的數字第一次大於n時,要想得到當前和,只需要減去上一次最後乙個
值再加上當前的值就可以了, 每次遍歷求和時間o(n),橫豎斜著遍歷去找就可,總時間o(n^2)
考察程式設計熟練啊,被bug卡住就杯具了
.**;
#include
#include
using
std::cin;
using
std::cout;
using
std::vector;
using
std::endl;
int main()
csum =0 ;
for(int j =0 ; j < n ; j++)
} int i = n-1 , j = 0;
while(i>=0)
j++;
} i =0 ; j = 0;
while(jint m = i , n = j;
int cnt =0;
int csum =0 ;
while(m=0)
j++;
} i = 1; j =n-1;
while(i < n)
.題目3:
大家一定玩過「推箱子」這個經典的遊戲。具體規則就是在乙個n*m的地
圖上,有1個玩家、1個箱子、1個目的地以及若干障礙,其餘是空地。
玩家可以往上下左右4個方向移動,但是不能移動出地圖或者移動到障
礙裡去。如果往這個方向移動推到了箱子,箱子也會按這個方向移動一
格,當然,箱子也不能被推出地圖或推到障礙裡。當箱子被推到目的地
以後,遊戲目標達成。現在告訴你遊戲開始是初始的地圖布局,請你求
出玩家最少需要移動多少步才能夠將遊戲目標達成。
.輸入格式**注釋裡有,*表示箱子,x表示人,@表示目的地,#表示障礙
.後來做才發現這是寬度優先的題目,在乙個圖結構當中如果每條邊權重是1的話,寬度優先搜尋第一次到達目的地步數就是到此位置的最小代價. 分析這道題最好的方式就是畫出狀態轉移關係,小人和箱子的位置確定了當前玩家的乙個狀態,下一步要去往的狀態無非是這麼兩種情況:
. 人走到另乙個空地,箱子沒動
.人推箱子前進一步
.宣告乙個四位陣列來st,當前狀態表示為st[x][x][bx][bx]:人位
置(x,y),箱子位置(bx,by),並將初始位置陣列值設為1,將初始值壓
入乙個佇列中
.每次從佇列中取出乙個元素,寬度優先下乙個未曾到達的狀態(以上分
析的兩種)判斷箱子是否到達終點.如果是列印路長並退出.
.沒有找到相關路徑列印-1.
#include
#include
#include
using
std::cin ;
using
std::cout;
using
std::vector;
using
std::endl;
using
std::queue;
/*4 4
....
..*@
....
.x..
*/int st[10][10][10][10];
int x,y,bx,by,tx,ty;
int m , n ;
vector
> mm ;
bool valid(int x,int y )
int main()
if(t == '*')
if(t == '@')
mm[i][j] = t;
} // record every state of the
vector
> next= ,,,};
queue
> que ;
que.push();
st[x][y][bx][by] =1 ;
while(!que.empty())
);continue;
}else
if(nx==bx&&ny==by&&valid(nnx,nny)&&st[nx][ny][nnx][nny]==0)
que.push();}}
} cout
<<-1;
return
0;}
.題目4:
在一條無限長的跑道上,有n匹馬在不同的位置上出發開始賽馬。當開
始賽馬比賽後,所有的馬開始以自己的速度一直勻速前進。每匹馬的速
度都不一樣,且全部是同樣的均勻隨機分布。在比賽中當某匹馬追上了
前面的某匹馬時,被追上的馬就出局。 請問按以上的規則比賽無限長
的時間後,賽道上剩餘的馬匹數量的數學期望是多少
.開始認為幾匹快馬速度一樣才可能同時留下來,沒好好讀題,其實人家說了馬的速度都不一樣.假設幾匹馬的速度是a
1<..
.a1 ,ai匹馬留下概率是p(i),p(i
)=1/
ip(i)=1/i
, 因為只有在第一匹快馬後面才能留下來,這是i種情況之一, 第i匹馬留下期望0∗(
i−1)
/i+1
/i0∗(i−1)/i+1/i
,由e(x+
y)=e
(x)+
e(y)
e(x+y)=e(x)+e(y)
得到所有馬期望和1 + 1 / 2 + 1 / 3 + 1 / 4 + … + 1 / n,就是調和級數。
#include
#include
#include
using
std::cin;
using
std::cout;
int main()
float sum =0.0;
for(int i =1 ; i<=n ; i++)
printf("%.4f",sum);
return
0;}
網易遊戲實習程式設計題
1.給定乙個字串,請你將字串重新編碼,將連續的字元替換成 連續出現的個數 字元 比如字串aaaabccdaa會被編碼成4a1b2c1d2a。輸入描述 每個測試輸入包含1個測試用例 每個測試用例輸入只有一行字串,字串只包括大寫英文本母,長度不超過10000。輸出描述 輸出編碼後的字串 include ...
網易遊戲2017互娛實習筆試程式設計(強化裝備)
題目描述 網遊中,裝備強化是提公升角色戰力的常見方法。現在你參與開發的遊戲中也有這項功能,團隊正在設計每件裝備強化所能提公升的戰力及需要消耗的金幣數。為了設計出乙個合理的強化系統,決定先做一些強化模擬測試,而你現在就在是該模擬程式的開發者。假設現在有n件可以同時穿戴的裝備,對於第i件裝備,最多可以強...
程式設計之美 24點遊戲
一,概述 二十四點是一種益智遊戲,它能在遊戲中鍛鍊人們的心算,它往往要求人們將四個數字進行加減乘除 允許使用括號 求得二十四。然後將四個數字的計算公式表示出來。二,中綴表示式求解 最直接的方法就是採用窮舉法,遊戲中可用的運算子只有四種,四個數字每個只能使用一次。1 不考慮括號情況 4個數全排列 4!...