Member 13903102 Ответов: 3

Изменение 1 ровно 1 символа для оптимизации строки


Вам дается строка S из строчных английских букв длиной N. Вы можете (но не обязаны) выбрать один индекс в этой строке и изменить букву в этом индексе на любую другую строчную английскую букву. Стоимость этой операции равна абсолютной величине разности значений ASCII новой буквы и исходной буквы; обозначим ее через X

Далее рассмотрим количество пар индексов (i,j)
в результирующей строке (строке после изменения одной буквы или исходной строке, если ни одна буква не была изменена) такой, что 1≤i<j≤N и Si<Sj. обозначим ее через Y

Найти минимально возможное значение X+Y?

Например
abcd ответ 6
ответ dbca равен 1
ответ dcba равен 0

как и в dcba,нет пары (i, j) Si<Sj, поэтому ответ равен 0.

Что я уже пробовал:

я попытался изменить минимальный элемент на максимальный и подсчитал количество пар, а также попытался изменить максимум на минимум и подсчитал пары и напечатал min всех трех.

3 Ответов

Рейтинг:
2

Member 13903180

Это вопрос из продолжающегося вызова, я не думаю, что уместно задавать его, когда вызов продолжается.


Рейтинг:
1

Patrice T

Итак, вы не пытаетесь решить проблему самостоятельно, у вас нет вопросов, вы просто хотите, чтобы мы сделали вашу домашнюю работу.
Домашние задания-это упрощенные версии тех задач, которые вам придется решать в реальной жизни. цель это обучение и практикующий.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это похоже на попытку научиться водить машину, обучая кого-то другого.
Создание алгоритма - это в основном поиск математики и необходимая адаптация к вашей реальной проблеме.


Member 13903102

я просто застрял с изменением характера части отдыха, которую я могу вычислить, но как решить, какой символ я должен изменить, чтобы минимизировать? мне просто нужен небольшой намек в этом направлении, и я надеюсь, что решу его...

Patrice T

Это и есть предмет вызова.
Найти эффективный способ получить ответ.

Member 13903102

хорошо, я буду стараться изо всех сил, и извините, что я просто очень новичок в codeproject, поэтому я задал очень плохой вопрос, буду иметь в виду и спасибо за вашу помощь, я чувствую себя мотивированным!

Patrice T

Сначала найдите способ найти ответ.

Member 13903102

я могу сделать все, что в моих силах!

Рейтинг:
1

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Member 13903102

просто хотел немного намекнуть на роль смены персонажа, и я действительно Новичок здесь, не очень много знаю о том, как задать правильный вопрос, извините за это..

OriginalGriff

Это нормально, но когда вы публикуете домашнее задание и не показываете никаких попыток сделать это самостоятельно, вы нигде не получите помощи! :смеяться:

Member 13903102

я попробовал это с большей стратегией, и то, что я узнал, заключается в том, что я должен продолжать, если элементы находятся в порядке убывания или постоянны, но эта стратегия также терпит неудачу, как S=cdce, и я меняю 2-й c, это не будет оптимальным, так как изменение 1-го c на e дает оптимальный ответ ... я все еще пытаюсь, но можете ли вы сказать мне, иду ли я в правильном направлении?? а также является ли сортировка слияния здесь какой-либо помощью/?? и извините за публикацию полного вопроса