Пожалуйста, используйте приведенный ниже код. Это самый простой вариант в моем анализе. Надеюсь, вам понравится:
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class MostRepeatingWord {
String mostRepeatedWord(String s){
String[] splitted = s.split(" ");
List<String> listString = Arrays.asList(splitted);
Set<String> setString = new HashSet<String>(listString);
int count = 0;
int maxCount = 1;
String maxRepeated = null;
for(String inp: setString){
count = Collections.frequency(listString, inp);
if(count > maxCount){
maxCount = count;
maxRepeated = inp;
}
}
return maxRepeated;
}
public static void main(String[] args)
{
System.out.println("Enter The Sentence: ");
Scanner s = new Scanner(System.in);
String input = s.nextLine();
MostRepeatingWord mrw = new MostRepeatingWord();
System.out.println("Most repeated word is: " + mrw.mostRepeatedWord(input));
}
}
Используйте встроенное reversed()
функция:
>>> a = ["foo", "bar", "baz"]
>>> for i in reversed(a):
... print(i)
...
baz
bar
foo
К также получают доступ к исходному индексу, используют enumerate()
в Вашем списке прежде, чем передать его reversed()
:
>>> for i, e in reversed(list(enumerate(a))):
... print(i, e)
...
2 baz
1 bar
0 foo
С тех пор enumerate()
возвраты генератор и генераторы не могут быть инвертированы, необходимо преобразовать его в list
сначала.
Это может быть сделано как это:
for i in range(len(collection)-1, -1, -1): print collection[i] # print(collection[i]) for python 3. +
, Таким образом, Ваше предположение было достаточно близко :) Немного неловкий, но это в основном говорит: запустите с 1 меньше чем len(collection)
, продолжайте идти, пока Вы не доберетесь до незадолго до-1 шагами-1.
к вашему сведению, эти help
функция очень полезна, поскольку она позволяет Вам просмотреть документы для чего-то от консоли Python, например:
help(range)
обратная функция пригождается здесь:
myArray = [1,2,3,4]
myArray.reverse()
for x in myArray:
print x
Используйте list.reverse()
и затем выполните итерации, как Вы обычно были бы.
Можно сделать:
for item in my_list[::-1]:
print item
(Или независимо от того, что Вы хотите выполнить для цикла.)
[::-1]
часть инвертирует список в для цикла (но на самом деле не изменит Ваш список "постоянно").
Если Вы нуждаетесь в индексе цикла и не хотите пересекать весь список дважды или использовать дополнительную память, я записал бы генератор.
def reverse_enum(L):
for index in reversed(xrange(len(L))):
yield index, L[index]
L = ['foo', 'bar', 'bas']
for index, item in reverse_enum(L):
print index, item
можно использовать генератор:
li = [1,2,3,4,5,6]
len_li = len(li)
gen = (len_li-1-i for i in range(len_li))
наконец:
for i in gen:
print(li[i])
надежда эта справка Вы.