每天一刷20200612

2021-10-07 03:16:20 字數 1536 閱讀 7171

問題

將乙個字串str的內容顛倒過來,並輸出。str的長度不超過100個字元。 如:輸入「i am a student」,輸出「tneduts a ma i」。

思路

輸入的字串可以有空格。怎麼讀一行字串,並且把他放進乙個string,使用getline()函式。

**

#include

#include

#include

using

namespace std;

intmain()

return0;

}

ps:這個題做法很多吧,用乙個指標逆序輸出字串也是可以的

問題

給定正整數 n,找到若干個完全平方數(比如 1, 4, 9, 16, …)使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。

思路

這個題有內味兒了,組成的完全平方數最少(讓人想到bfs最短路徑的解法)。問題是怎麼抽象點的定義呢,狀態的轉換是怎麼定義的,還是有種無從下手的感覺。看了題解還能用dp真的是打臉。

dp解法

**

class

solution

// cntperfectsquares[i] = the least number of perfect square numbers

// which sum to i. note that cntperfectsquares[0] is 0.

vector<

int>

cntperfectsquares

(n +

1, int_max)

; cntperfectsquares[0]

=0;for

(int i =

1; i <= n; i++)}

return cntperfectsquares.

back()

;}};

bfs的解法:

將此題目抽象為,要從n走到0,每次跨越的距離只能為平方數,求最少的跨越次數。很自然用標準的bfs去解決。

每天一刷20200602

問題 寫出乙個程式,接受乙個正浮點數值,輸出該數值的近似整數值。如果小數點後數值大於等於5,向上取整 小於5,則向下取整。思路 其實就是實現乙個正浮點數的四捨五入,可以呼叫math.h中的round 函式直接完成,有點討巧。include include using namespace std in...

每天一刷20200603

問題 編寫乙個函式,計算字串中含有的不同字元的個數。字元在acsii碼範圍內 0 127 換行表示結束符,不算在字元裡。不在範圍內的不作統計。注意是不同的字元 思路 跟之前做過的乙個題相似,那個題是字串去重,稍作修改就行了。include include using namespace std in...

每天一刷20200605

昨天返校,沒有做題。問題 功能 等差數列 2,5,8,11,14 輸入 正整數n 0 輸出 求等差數列前n項和 返回 轉換成功返回 0 非法輸入與異常返回 1 思路 這個題其實就是簡單的等差數列求和,設定好初始項,然後控制好迴圈次數即可。ps 在處理輸入的時候要注意用while 來讀取輸入,不然提交...