c 刷題(37 100)筆試題2

2022-08-27 06:00:13 字數 2933 閱讀 8334

4道題2小時,又是一道,不過這次的比較難,但第二道不應該的,又是審題不仔細導致沒過

題目1:

給定乙個字串,請你將字串重新編碼,將連續的字元替換成「連續出現的個數+字元」。比如字串aaaabccdaa會被編碼成4a1b2c1d2a。

思路:就簡單的字串處理

#include #include 

using namespace std ;

intmain()

ans = ans + to_string(cnt) +temp ;

}cout

<< ans <}

第二題:

在乙個n*n的陣列中尋找所有橫,豎,左上到右下,右上到左下,四種方向的直線連續d個數字的和裡面最大的值 

輸入描述:

每個測試輸入包含1個測試用例,第一行包括兩個整數 n 和 d :

3 <= n <= 100

1 <= d <= n

接下來有n行,每行n個數字d:

0 <= d <= 100

輸出描述:

輸出乙個整數,表示找到的和的最大值
輸入例子1:
4 2

87 98 79 61

10 27 95 70

20 64 73 29

71 65 15 0

輸出例子1:
193
這道沒過不應該了,自以為題目中的左上到右下和右上到左下是乙個意思,然後就少算了一種情況,於是只能過80%的樣例,最後有個疑問,既然0<=d<=100,為什麼還要考慮負數。。

#include #include 

using namespace std ;

int findmax(vectorint>> map,int x,int y,int

d)

if(y+i].size())

if(x+i].size())

if(x+i=0)

}if(lc!=d) l = 0;

if(dc!=d) d = 0;

if(ldc!=d) ld = 0;

if(rdc!=d) rd = 0;

m =max(m,l) ;

m =max(m,d) ;

m =max(m,ld) ;

m =max(m,rd) ;

return

m ;}

intmain()

}int ans = 0;

for(int i=0;i)

}cout

<< ans <}

題目三:推箱子

大家一定玩過「推箱子」這個經典的遊戲。具體規則就是在乙個n*m的地圖上,有1個玩家、1個箱子、1個目的地以及若干障礙,其餘是空地。玩家可以往上下左右4個方向移動,但是不能移動出地圖或者移動到障礙裡去。如果往這個方向移動推到了箱子,箱子也會按這個方向移動一格,當然,箱子也不能被推出地圖或推到障礙裡。當箱子被推到目的地以後,遊戲目標達成。現在告訴你遊戲開始是初始的地圖布局,請你求出玩家最少需要移動多少步才能夠將遊戲目標達成。 

輸入描述:

每個測試輸入包含1個測試用例

第一行輸入兩個數字n,m表示地圖的大小。其中0

輸出描述:輸出乙個數字表示玩家最少需要移動多少步才能將遊戲目標達成。當無論如何達成不了的時候,輸出-1。

輸入例子1:
4 4

....

..*@

....

.x..

6 6...#..

......

#*##..

..##.#

..x...

.@#...

輸出例子1:
3

11

之後在中間判斷人的移動有沒有造成箱子的移動就行了。

#include #include 

#include

using namespace std ;

struct state

};int vis[10][10][10][10] ;

int map[10][10] ;

intex, ey, x, y, wx, wy , m , n ;

int a=, b= ;

queue

q ;int

bfs()

else}}

return -1;

}int

main()

if(row[j]=='*')

if(row[j]=='@')}}

cout

<< bfs() <}

題目4:賽馬

在一條無限長的跑道上,有n匹馬在不同的位置上出發開始賽馬。當開始賽馬比賽後,所有的馬開始以自己的速度一直勻速前進。每匹馬的速度都不一樣,且全部是同樣的均勻隨機分布。在比賽中當某匹馬追上了前面的某匹馬時,被追上的馬就出局。 請問按以上的規則比賽無限長的時間後,賽道上剩餘的馬匹數量的數學期望是多少 

輸入描述:

每個測試輸入包含1個測試用例

輸入只有一行,乙個正整數n

1 <= n <= 1000

輸出描述:

輸出乙個浮點數,精確到小數點後四位數字,表示剩餘馬匹數量的數學期望
輸入例子1:
1

2

輸出例子1:
1.0000

1.5000

#include #include 

using

namespace

std ;

intmain()

cout

}

刷題 阿里20200330筆試

目錄 第1題第2題 總結 小強有n個養雞場,第i個養雞場初始有a i 只小雞。與其他養雞場不同的是,他的養雞場每天增加k只小雞,小強每天結束都會在數量最多的養雞場裡賣掉一半的小雞,假如乙個養雞場有x隻雞,則賣出後只剩下x 2 向下取整 隻雞。問m天後小強的n個養雞場一共多少只小雞?最後幾分鐘a了,很...

今日頭條2018 筆試題2

定義兩個字串變數 s,m,再定義兩種操作,第一種操作 m ss s s 說明 s只會變為原來的2倍 第二中操作 s s m 假設s,m初始化如下 s a m s求最小的操作步驟數,可以將s拼接到長度等於n。示例1 輸入6,輸出3 示例2 輸入4,輸出2 思路 第一種操作,s變為原來的1倍 說明偶數的...

c 筆試題彙總 2

1.以下三條輸出語句分別輸出什麼?char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout str1 str2 cout cout ...