海外公司網(wǎng)站 國(guó)內(nèi)做備案美國(guó)婚戀網(wǎng)站排名
??題目來(lái)源:
? ? ? ? leetcode題目,網(wǎng)址:面試題 01.06. 字符串壓縮 - 力扣(LeetCode)
解題思路:
? ? ? ?計(jì)算壓縮后的字符串長(zhǎng)度,如果該長(zhǎng)度小于原字符串長(zhǎng)度,返回壓縮后的字符串,否則返回原字符串。
解題代碼:
class Solution {
public:string compressString(string S) {string com="";char pre=S[0];int cnt=1;for(int i=1;i<S.length();i++){if(S[i]!=pre){com+=pre+to_string(cnt);pre=S[i];cnt=1;}else{cnt++;}}com+=pre+to_string(cnt);return com.length()<S.length()?com:S;}
};
總結(jié):
? ? ? ?在字符串拼接時(shí),若代碼為 com=com+pre+to_string(cnt); 會(huì)報(bào)超出內(nèi)存的錯(cuò)誤,而使用 com+= pre+to_string(cnt); 時(shí),則不會(huì)。這里可能是因?yàn)?+= 是在 com 字符串的后面直接添加,而
com=com+pre+to_string(cnt); 會(huì)新建變量保存 com+pre+to_string(cnt) 的結(jié)果,再賦值給 com ,從而導(dǎo)致超出內(nèi)存限制。
? ? ? ? 官方題解也是直接模擬。
????????
????????