多多的字符变换

  • 题目
  • 思路
  • 代码
  • 结果

题目

多多君最近在研究字符串之间的变换,可以对字符串进行若干次变换操作:

交换任意两个相邻的字符,代价为0。
将任意一个字符a修改成字符b,代价为 |a - b|(绝对值)。
现在有两个长度相同的字符串X和Y,多多君想知道,如果要将X和Y变成两个一样的字符串,需要的最少的代价之和是多少。
题目传送门

思路

1、变换任意两个相邻的字符,代价为0。也就是说,我们可以通过无限次变换,来获得我们想要获得的字符串顺序。
2、修改字符,当然是两个离得越近的字符去修改越好!
3、基于以上两点,先统计出各个字符串的字母个数【题目中说到,字符串皆为小写字符】。
4、然后去除掉两个字符串相同的字母
5、再找他们不同字母的字符进行转化即可。

代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner reader=new Scanner(System.in);int N=reader.nextInt();//接收字符串长度reader.nextLine();// 消除上面输入数字后回车符带来的影响String a=reader.next();String b=reader.next();int a_num[]=new int[26];int b_num[]=new int[26];// 计算 字符串 a b两个字符for (int i=0;i<N;++i){++a_num[((int)a.charAt(i)-97)];++b_num[((int)b.charAt(i)-97)];}for (int i=0;i<26;++i){int min=Math.min(a_num[i],b_num[i]);a_num[i]-=min;b_num[i]-=min;}int i=0;int j=0;int ans=0;while (i<26 && j<26){while (a_num[i]==0){++i;if (i>=26)break;}while (b_num[j]==0){++j;if (j>=26)break;}if (i>=26 || j>=26)break;// 找出来两个数组的不为0的字母if (a_num[i]>b_num[j]) // a的字母多{ans+=Math.abs(i-j)*b_num[j];a_num[i]-=b_num[j];b_num[j]=0;}else  if (b_num[j]>=a_num[j])// b的字母多{ans+=Math.abs(i-j)*a_num[i];b_num[j]-=a_num[i];a_num[i]=0;}}System.out.println(ans);}
}

结果

AC了,这道题不算很难,就是要把思路一遍捋清楚,有点小麻烦!自己写代码的能力还是差,眼高手低,有思路,但是要想真正实现思路,就很难!

拼多多——多多的字符变换相关推荐

  1. 拼多多2021笔试真题集 多多的数字组合 多多的字符变换 多多的求和计算 多多的骰子组合

    第一题 多多的数字组合 多多君最近在研究某种数字组合: 定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N. 满足条件的数字可能很多,找到其中的最小值即可. 输入描述: 共 ...

  2. 拼多多——多多的数字组合

    多多的数字组合 题目 思路 代码 结果 题目 多多君最近在研究某种数字组合: 定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N. 满足条件的数字可能很多,找到其中的最小值 ...

  3. 【编程练习】拼多多2021笔试真题集

    题目来源:牛客,拼多多2021笔试真题集 第一题:多多的数字组合 打卡题,很明显的两个约束:每个位数各不相同 + 数字最小,在这两个条件的约束下,N最大为45,对应的数字为123456789. 代码如 ...

  4. nvarchar(2048)能写多少个字符_我的拼多多店一个标题能带来多少的免费流量?三个字“非常多”...

    一个好的标题能够带给你更多的展现/曝光机会.如果说连标题都没有做好,那么是很难做好拼多多的. 所以标题决定了我们做拼多多能够获得多少流量,可以说标题没做好,那么你想做好拼多多难度会非常大.并且发展前景 ...

  5. 拼多多 标题 html,拼多多的创意图和创意标题怎么测试?为什么要测试?怎样测试呢?...

    1. 首先,什么是创意昵?创意在推广里面的载体有两个: 2. 从拼多多商家后台_搜索推广/场景推广-对应计划的"编辑" _对应推广单元的"编辑" _创意列表,可 ...

  6. 禁止 自动 安装 android,如何永远禁止手机安装拼多多?永远禁止手机安装拼多多的方法[多图]...

    拼多多是一个很多用户都会使用到的购物软件,在使用这款软件的时候,用户可以在平台上选择自己想要的服务进行使用和操作,但是很多用户都不喜欢这个服务,如果用户在使用这款软件的时候,不想要使用这款软件,那么可 ...

  7. 多多情报通:拼多多可以看到什么软件?拼多多的大数据分析软件是什么?

    对于拼多多的企业来说,数据分析和运营商店是非常重要的,那么拼多多可以看到什么软件呢?拼多多的大数据分析软件是什么? 作为拼多多数据分析软件,多多情报通可以为卖家提供行业分析.竞争产品分析和商店监控.热 ...

  8. 做好拼多多的几个小技巧-拼多多出评技巧

    一个拼多多店铺如果没有销量,就意味着没有收入,因而提高销售量是每个店铺卖家都必须做的.今天小编就跟大家分享一下拼多多店铺提高销售量的5个技巧,希望能帮到大家. 1.提炼卖点和打造宝贝详情页. 提高销售 ...

  9. 拼多多的服务器需要维护吗,拼多多客服外包 店铺评价如何维护 外包客服分享几个小秘诀...

    拼多多客服外包 店铺评价如何维护 外包客服分享几个小秘诀 如果店铺意外收获差评,如何维护减少影响让顾客继续下单? 新店店主怕的就是突如其来的差评,本来评价就少,再加上一个差评新品估计就要死翘翘了,所以 ...

最新文章

  1. python的 局部变量与全局变量
  2. javascript php 性能,JavaScript知识点总结之如何提高性能_javascript技巧
  3. 你也可以搞懂的微服务第一篇——来自ThoughtWork的学习体验
  4. 我喜欢的一首歌--《幸福的瞬间》
  5. 26岁创造UNIX的编程大佬,退休后却成为一名飞行员
  6. 在将hibernate的session托管给spring过程中的问题
  7. 写python脚本管理_《写给系统管理员的 Python 脚本编程指南》笔记——第八章 文档和报告...
  8. Angularjs总结(一)表单验证
  9. java下载的文件不完整_JAVA 解决FTP下载文件不完整问题
  10. Matlab中 regionprops和bwlabel的用法
  11. Sodinokibi勒索病毒利用Flash漏洞强势来袭
  12. NIO消息边界问题处理
  13. 基于java的志愿信息管理系统_基于jsp的志愿者管理系统-JavaEE实现志愿者管理系统 - java项目源码...
  14. C++中的常用函数例如for_each、accumulate、unique等
  15. Kubernetes和Jenkins——基于Kubernetes构建Jenkins持续集成平台
  16. c++ IO多路复用
  17. 关于有道云笔记md文档图片不显示的解决方案
  18. C#获取目录下所有文件的列表——最白话,手把手教你做系列。
  19. xss获取键盘记录实验演示
  20. 阿德莱德计算机专业offer,2020年阿德莱德大学录取offer介绍及offer多久到

热门文章

  1. nodejs-指定长度断句
  2. ireport导出Excel报表的实现
  3. DotSpatial
  4. 【Mysql】一个简易的索引方案
  5. html中em使用例子,HTML DOM Emphasized用法及代码示例
  6. 可以进行论文降重吗?
  7. 这 5 本数据分析书籍,都是经典中的经典
  8. matlab函数积分怎么写,Matlab求分段函数的积分
  9. 如何关闭移动硬盘的自动休眠功能
  10. 《惢客创业日记》2019.01.30(周三)一月份的工作总结