当前位置: 首页 > news >正文

商城网站建设预算b站刺激战场视频

商城网站建设预算,b站刺激战场视频,建设银行钓鱼网站,网站开发翻译功能交换字符使得字符串相同【LC1247】 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字…

交换字符使得字符串相同【LC1247】

有两个长度相同的字符串 s1s2,且它们其中 只含有 字符 "x""y",你需要通过「交换字符」的方式使这两个字符串相同。

每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。

交换只能发生在两个不同的字符串之间,绝对不能发生在同一个字符串内部。也就是说,我们可以交换 s1[i]s2[j],但不能交换 s1[i]s1[j]

最后,请你返回使 s1s2 相同的最小交换次数,如果没有方法能够使得这两个字符串相同,则返回 -1

考完一门 下周还有一门 加油哇

  • 思路

    当两种字符串某个位置字符不同时,有两种情况:

    • 第一种情况为s1[i]xs2[i]y,记该种情况次数为nXy
    • 第二种情况为s1[i]ys2[i]X,记该种情况次数为nYx

    交换的方法有两种

    1. 通过一次交换(x<->y 或者y<->x )使nXy或者nYx减少2
    2. 通过两次交换(x<->x x<->y 或者y<->y y<->x)使nXynYx各减少1

    如果nXynYx有一个为奇数,那么无法使字符串相等。否则优先采取第一种交换方式【局部最优】,然后当都只剩下一个时,通过两次交换使字符串相等,交换次数为nXy/2+nYx/2+nXy%2+nYx%2nXy/2 + nYx/2+nXy\%2 + nYx\%2nXy/2+nYx/2+nXy%2+nYx%2

  • 实现

    class Solution {public int minimumSwap(String s1, String s2) {int nX = 0, nY = 0;int n = s1.length();for (int i = 0; i < n; i++){if (s1.charAt(i) != s2.charAt(i)){if (s1.charAt(i) == 'x'){nX++;}else{nY++;}}}int res = 0;res += nX / 2;if (nX % 2 == 1){res += 1;nY++;}if (nY % 2 == 1){return -1;}res += nY / 2;return res;}
    }
    
    • 复杂度
      • 时间复杂度:O(n)O(n)O(n)
      • 空间复杂度:O(1)O(1)O(1)
http://www.tj-hxxt.cn/news/70754.html

相关文章:

  • 网站建设公司行业现状网络营销ppt怎么做
  • 没有网站怎么做cpa赚钱南宁seo公司哪家好
  • 虚拟机做的网站怎么让外网访问不了网全网推广哪家正宗可靠
  • 花店网站开发参考文献石家庄邮电职业技术学院
  • 网站排名做不上去如何自己做一个软件
  • 网站首页的尺寸做多大推广资源seo
  • 做电商网站一般需要什么流程图今天头条新闻
  • 西平网站建设网络推广公司有多少家
  • b2c网站建设策略ip反查域名网站
  • 网站架构图一般包括什么网站建设费用明细表
  • 网站优化的方法上海seo公司哪家好
  • 长沙短视频代运营公司电脑优化工具
  • 帮人做网站一个多少钱网站建设公司大全
  • 上海网站建设规范百度网盘网页版登录
  • 为何打不开中国建设银行网站温州seo教程
  • 网站程序开发公司软件开发培训机构去哪个学校
  • 天津网站制作网页电脑培训班一般多少钱
  • 网站建设环境营销策略方案
  • 啪啪男女禁做视频网站免费搭建自己的网站
  • 营销型网站建设信融夸克搜索
  • 长沙一键建站系统泉州关键词搜索排名
  • 陕西专业网站开发多少钱如何把网站推广
  • 东莞做外贸网站企业seo推广
  • 合肥网站推广优化百度数据研究中心官网
  • 中央农村工作会议2020原文网站整站优化
  • phpcms网站打不开百度营消 营销推广
  • 国内哪家网站做的系统纯净steam交易链接在哪里看
  • 营销型网站建设公司方法和技巧郑州做网络优化的公司
  • 委托做的网站版权归属哪方武汉网站推广优化
  • 深圳网站设计与制作公司百度怎么投放广告