更改1个正好1个字符以优化字符串 [英] Changing 1 exactly 1 character to optimise a string

查看:76
本文介绍了更改1个正好1个字符以优化字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您将获得一个字母S的小写英文字母,长度为N.您可以(但不必)在此字符串中选择一个索引,并将此索引处的字母更改为任何其他小写英文字母。此操作的成本是新字母和原始字母的ASCII值差异的绝对值;让我们用X来表示它



接下来,考虑结果字符串中的索引对(i,j)

的数量(字符串)在改变一个字母之后,或者如果没有改变字母则改变原始字符串),使得1≤i


找到X + Y的最小可能值?



例如

abcd答案是6

dbca答案是1

dcba答案是0



在dcba中没有对(i,j)Si< Sj所以答案是0.



我尝试了什么: < br $>


i尝试将最小元素更改为最大值并计算对数,并尝试将最大值更改为最小值并计算对数并打印所有三个元素。

解决方案

所以,你没有尝试自己解决问题,你毫无疑问,你只是想让我们做你的HomeWork。

HomeWork问题是你在现实生活中必须解决的问题的简化版本,他们的目的是学习和练习



我们不做你的HomeWork。

HomeWork不会测试你乞求别人做你的工作的技巧,它是让您思考并帮助您的老师检查您对所学课程的理解以及您应用这些课程时遇到的问题。

你的任何失败都会帮助你的老师发现你的弱点并设定补救措施。

你的任何失败都会帮助你了解什么有效,什么无效,被称为'试错'学习。

所以,试一试,重读课程并开始工作。如果您遇到特定问题,请显示您的代码并解释这个问题,我们可能会提供帮助。



作为程序员,您的工作是创建算法解决特定问题,你不能依赖别人永远为你做,所以有一段时间你必须学会​​如何。而且越快越好。

当你要求解决方案时,就像试图通过培训其他人来学习开车一样。

创建算法基本上是找到数学并进行必要的调整以适应你的实际问题。


我们不做你的作业:它是有原因的。它就是为了让你思考你被告知的事情,并试着理解它。它也在那里,以便您的导师可以识别您身体虚弱的区域,并将更多的注意力集中在补救措施上。



亲自尝试,你可能会发现它不是和你想的一样困难!



如果遇到具体问题,请询问相关问题,我们会尽力提供帮助。但是我们不打算为你做这一切!


这是一个来自持续挑战的问题,我认为在挑战发生时提出这个问题并不合适上。

You are given a string S of lowercase English letters with length N. You are allowed to (but don't have to) choose one index in this string and change the letter at this index to any other lowercase English letter. The cost of this operation is the absolute value of the difference of ASCII values of the new letter and the original letter; let's denote it by X

Next, consider the number of pairs of indices (i,j)
in the resulting string (the string after changing one letter, or the original string if no letter was changed) such that 1≤i<j≤N and Si<Sj. Let's denote it by Y

Find the minimum possible value of X+Y?

For example
abcd answer is 6
dbca answer is 1
dcba answer is 0

as in dcba there is no pair (i,j) Si<Sj so answer is 0.

What I have tried:

i tried to change the minimum element to maximum and counted the number of pairs and also tried to changed maximum to minimum and counted pairs and printed min of all three.

解决方案

So, you show no attempt to solve the problem yourself, you have no question, you just want us to do your HomeWork.
HomeWork problems are simplified versions of the kind of problems you will have to solve in real life, their purpose is learning and practicing.

We do not do your HomeWork.
HomeWork is not set to test your skills at begging other people to do your work, it is set to make you think and to help your teacher to check your understanding of the courses you have taken and also the problems you have at applying them.
Any failure of you will help your teacher spot your weaknesses and set remedial actions.
Any failure of you will help you to learn what works and what don't, it is called 'trial and error' learning.
So, give it a try, reread your lessons and start working. If you are stuck on a specific problem, show your code and explain this exact problem, we might help.

As programmer, your job is to create algorithms that solve specific problems and you can't rely on someone else to eternally do it for you, so there is a time where you will have to learn how to. And the sooner, the better.
When you just ask for the solution, it is like trying to learn to drive a car by having someone else training.
Creating an algorithm is basically finding the maths and make necessary adaptation to fit your actual problem.


We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.

Try it yourself, you may find it is not as difficult as you think!

If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!


This is a question from on-going challenge, I don't think it is appropriate to ask it while the challenge is going on.


这篇关于更改1个正好1个字符以优化字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆