給定兩個字符串 word1 和 word2,請將它們按照交替的方式合併形成一個新的字符串。合併的方式是將 word1 和 word2 的字符交替地從頭開始取出,如果其中一個字符串的字符用完了,則直接將另一個字符串的剩餘字符全部加入到新的字符串中。返回合併後的新字符串。 思考: 如何在一個迴圈內循環放入 1.決定最大執行次數 i 2.因為程式是由上而下執行 先放word1再放word2 3.如果 i 還小於 word1和word2的size();就放入 4.C++中有string, string ans = ""; 可以用+=合併字串 ```c++= class Solution { public: string mergeAlternately(string word1, string word2) { string ans = ""; //要做最多 max(m, n) 次 int n = word1.size(); int m = word2.size(); int maxTime = max(n, m); for(int i = 0; i < maxTime; i++){ //從word1開始放 注意用word1[i], word2[i]的原因 m, n不用前進 if(i < n){ //如果還有word1 ans += word1[i]; } if(i < m){ ans += word2[i]; } } return ans; } }; ``` ```= /** * @param {string} word1 * @param {string} word2 * @return {string} */ var mergeAlternately = function(word1, word2) { let n = word1.length; let m = word2.length; let ans = ""; let ptr1 = 0; let ptr2 = 0; for(let i = 0; i < (m + n); i++){ if(ptr1 < n){ ans += word1[ptr1]; ptr1++; } if(ptr2 < m){ ans += word2[ptr2]; ptr2++; } } return ans; }; ``` ```= /** * @param {string} word1 * @param {string} word2 * @return {string} */ var mergeAlternately = function(word1, word2) { let n = word1.length; let m = word2.length; let ans = []; let ptr1 = 0; let ptr2 = 0; for(let i = 0; i < (m + n); i++){ if(ptr1 < n){ ans.push(word1[ptr1]); ptr1++; } if(ptr2 < m){ ans.push(word2[ptr2]); ptr2++; } } ans = ans.join(''); return ans; }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up