Я пытаюсь выяснить из массива строк, как сравнивать строки на основе символов. Так, например, есть следующее:
arr = [4, "string", "gnirts", "strign", "ta", "atc"]
В этом случае "ta" и "atc" не совпадают с другими строками. Но "строка", "gnirts", "strign" совпадают.
Моей первой мыслью было бы разбить массив на части, проверить длину. Затем сравните строки и сохраните первый подарок.
Я знаю, мне наплевать на 4. Это просто указывает количество строк, поэтому я могу сделать arr.shift (1).
Я знаю, что могу сделать что-то вроде string.chars.sort, но как мне сравнить строки в массивах?
Я думал что-то вроде:
arr.each_with_index do |value, index|
index.each do |item|
if value.chars.sort == item
return value
end
end
Это определенно не работает.
То, что я хочу увидеть в конце, будет иметь сортировку в массиве, так что я получу в итоге atc, gnirts и string (потому что остальные совпадают с этим, и string будет первым).
Так как же в конечном итоге сравнить строки в массиве и сохранить первую в числовом виде?
EDIT:
Ввод будет что-то вроде [4, "string", "gnirts", "strign", "ta", "atc"]
Выходной массив будет
["atc", "ta", "string"]
Таким образом, сопоставление сохранит первый подарок, а затем отсортирует по несоответствующим.