首页 > 其他分享 >leetCode1768.交替合并字符串 && [1679] K 和数对的最大数目

leetCode1768.交替合并字符串 && [1679] K 和数对的最大数目

时间:2023-06-12 20:44:40浏览次数:40  
标签:map arr nums leetCode1768 word1 1679 && word2 字符串

题目:给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。

            输入:word1 = "abc", word2 = "pqr"             输出:"apbqcr"             解释:字符串合并情况如下所示:             word1:  a   b   c             word2:    p   q   r             合并后:  a p b q c r
            输入:word1 = "ab", word2 = "pqrs"             输出:"apbqrs"             解释:注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。             word1:  a   b             word2:    p   q   r   s             合并后:  a p b q   r   s  
 mergeAlternately(word1, word2) {
                let arr = [];
                if (word1.length >= word2.length) {
                    Array.from(word1).forEach((x, i) => {
                        arr.push(x);
                        Array.from(word2)[i] && arr.push(Array.from(word2)[i])
                    })
                } else {
                    Array.from(word2).forEach((x,i) => {
                        Array.from(word1)[i] && arr.push(Array.from(word1)[i])
                        arr.push(x)
                    })
                }
                return arr.join("")
            }
        },

  

       AIMerge(word1, word2) {
            let merge = '';
            let minLenght = Math.min(word1.length, word2.length);
            for(let i=0; i<minLenght; i++) {
                merge += word1[i] + word2[i]
            }
            word1.length > word2.length ? merge += word1.substring(minLenght) : merge += word2.substring(minLenght)
            return merge
        }

 题目:给你一个整数数组 nums 和一个整数 k 。每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数;

 输入:nums = [1,2,3,4], k = 5         输出:2         解释:开始时 nums = [1,2,3,4]:         - 移出 1 和 4 ,之后 nums = [2,3]         - 移出 2 和 3 ,之后 nums = []         不再有和为 5 的数对,因此最多执行 2 次操作。
        maxOperations(nums, k) {
              let count = 0;
                const map = new Map();
                        for (let num of nums) {
                            if(map.get(k-num)){
                            count++;
                            map.set(k-num,map.get(k-num)-1);
                            }else{
                            map.set(num,(map.get(num)||0)+1);
                            }
                        }
                return count;
        },

  

标签:map,arr,nums,leetCode1768,word1,1679,&&,word2,字符串
From: https://www.cnblogs.com/wangxinyubokeyuan/p/17475353.html

相关文章

  • leetcode 1679
    1.排序双指针先排序sort(nums.begin(),nums.end());在双指针查找while(left<right){if(nums[left]+nums[right]<k){left++;}elseif(nums[left]+nums[right]>k){right--;}else{left++;right--;count++;}}2.......
  • 力扣---1679. K 和数对的最大数目
    给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。 示例1:输入:nums=[1,2,3,4],k=5输出:2解释:开始时nums=[1,2,3,4]:-移出1和4,之后nums=[2,3]-移出2和3,之后n......
  • 【POJ1679】The Unique MST(非严格次小生成树)
    problem给出一个连通无向图,判断它的最小生成树是否唯一如果唯一,输出生成树的大小,否则输出”NotUnique!”solution直接求非严格次小生成树如果次小生成树等于最小生成树则说明最小生成树不唯一,否则最小生成树一定是唯一的vector会TLE。。。codes#include<iostream>#include<algori......
  • 启动vagrant up 报错 `await_response_state': scp: /tmp/vagrant-network-entry-eth1
      解决办法Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。Linuxdu命令用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘......
  • Git Submodules && Sparse checkout
    步骤备忘:1,增加子模块,这里会把所有的内容clone下来,在5步的时候,会清除掉不需要的文件。 gitsubmoduleadd  [email protected]/asdfasdfasdfasdfasdfasdfasdf.git  ......
  • leetcode1768-交替合并字符串
    https://leetcode.cn/problems/merge-strings-alternately/这题没什么好说的,特别简单。但是也学到了一些点。1.字符串res和另一个字符串中的某一个字符nums[i]不能通过......