Запрещение задачи < /h4>
Вы организуете уникальную охоту за сокровищами, где каждая подсказка представлена латинским алфавитом. Подсказки распределяются по разным зонам, и каждая зона присваивается ему, основываясь на его положении в алфавите. Чтобы решить головоломку, вам нужно изменить подсказки на основе их уровня «сложности». Сложность каждой подсказки определяется модулем номера зоны подсказки 5. Это означает, что подсказка в зоне «a» (положение 1) имеет сложность 1 % 5 = 1, подсказка в зоне «b» (положение 2) имеет Сложность 2 % 5 = 2, и так далее. Подсказка в зоне 'E' (позиция 5) будет иметь сложность 0, как 5 % 5 = 0. < /p>
Как только всем подсказкам будет назначен уровень сложности, вам нужно Сортировать подсказки в растущем порядке их трудностей. Если два подсказки имеют одинаковый уровень сложности, подсказка, которая появляется ранее в алфавите (то есть ближе к «а») должна рассматриваться как имеющая больше сложности. < /P>
Ваша задача - сортировать Подсказки в восходящем порядке сложности и печати результат. целое число n, представляющее длину строки. < /p>
< /li>
Вторая строка содержит строку длины n, состоящую из латинских алфавитов нижних частей ('a 'to' z '). < /p>
< /li>
< /ol>
формат вывода < /h4>
Печать отсортированного Строка на основе заданных условий. < /p>
ограничения: < /p>
1
TestCase Input < /H5>
3
bca
< /code>
testcase output < /h5>
abc
Объяснение:
Здесь у нас есть строка str = bca
Сложность «b» = 2 % 5 = 2; 'c' = 3 % 5 = 3; 'a' = 1 % 5 = 1
Окончательный результат будет abc.
Пример тестового примера 1
Вводные данные тестового примера 5
abcde
< /code>
testcase output < /h5>
eabcd
Объяснение:
Здесь у нас есть строка str = abcde
Сложность «a» = 1 % 5 = 1; ‘б’ = 2 % 5 = 2; 'c' = 3 % 5 = 3; 'd' = 4 % 5 = 4 и 'e' = 5 % 5 = 0.
Окончательным результатом будет eabcd.
Этот код принимается только в 4 тестовых сценариях из 12.
Мне нужно правильное решение.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
class Main {
public static String userLogic(int n, String s) {
// Create a list to store character and their difficulty level
List cluesWithDifficulty = new ArrayList();
for (char c : s.toCharArray()) {
// Calculate the position in alphabet (1-based)
int position = c - 'a' + 1;
// Calculate the difficulty level
int difficulty = position % 5;
// Add the character and its difficulty to the list
cluesWithDifficulty.add(new CharacterWithDifficulty(c, difficulty));
}
// Sort the list first by difficulty, then by character
Collections.sort(cluesWithDifficulty, new Comparator() {
@Override
public int compare(CharacterWithDifficulty o1, CharacterWithDifficulty o2) {
if (o1.difficulty != o2.difficulty) {
return Integer.compare(o1.difficulty, o2.difficulty);
} else {
return Character.compare(o1.character, o2.character);
}
}
});
// Build the sorted string
StringBuilder sortedClues = new StringBuilder();
for (CharacterWithDifficulty cwd : cluesWithDifficulty) {
sortedClues.append(cwd.character);
}
// Return the result
return sortedClues.toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String s = scanner.next();
String result = userLogic(n, s);
// Print the output
System.out.println(result);
}
}
// Helper class to store character and its difficulty
class CharacterWithDifficulty {
char character;
int difficulty;
CharacterWithDifficulty(char character, int difficulty) {
this.character = character;
this.difficulty = difficulty;
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... difficulty
Мобильная версия