問題
將乙個字串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 來讀取輸入,不然提交...