Подсчет количества слов после последнего вхождения каждого слова в массиве строк

Я работаю над текстом Я хочу узнать количество слов после последнего вхождения определенного слова в массив строк. Например, String[] array={cat,rat,cat,bat,cat,cat,bat,fat,mat} и Я хочу найти последнее вхождение каждого слова в этом массиве и количество слов после последнего вхождения. Как мне это сделать???

3 ответа

Повторяйте и считайте массив в обратном направлении, и каждое новое слово, с которым вы сталкиваетесь таким образом, является последним или единственным экземпляром этого слова в массиве. То есть вы можете поместить слова в хэш-набор, чтобы проверить, видели ли вы их уже. Всякий раз, когда вы обнаруживаете новое слово таким образом, вы получаете количество слов за ним со счетчика или вычисляя array.length - currentPosition,

В рубине:

arr = [:cat,:rat,:cat,:bat,:cat,:cat,:bat,:fat,:mat]
hash = {}
arr.reverse.each_with_index {|item, index| hash[item]=index unless hash.has_key?(item)}
hash
=> {:mat=>0, :fat=>1, :bat=>2, :cat=>3, :rat=>7}

Существует решение с RegEx в DotNet, если вы будете работать со строками.

Для поиска в массиве вот короткий пример:

    using System;

class Program
{
    static void Main()
    {
    //
    // Use this array of string references.
    //
    string[] array1 = { "cat", "dog", "carrot", "bird" };
    //
    // Find first element starting with substring.
    //
    string value1 = Array.Find(array1,
        element => element.StartsWith("car", StringComparison.Ordinal));
    //
    // Find first element of three characters length.
    //
    string value2 = Array.Find(array1,
        element => element.Length == 3);
    //
    // Find all elements not greater than four letters long.
    //
    string[] array2 = Array.FindAll(array1,
        element => element.Length <= 4);

    Console.WriteLine(value1);
    Console.WriteLine(value2);
    Console.WriteLine(string.Join(",", array2));
    }
}

Также вы можете взглянуть на MSDN Пример

Надеюсь, что помогает С уважением

Другие вопросы по тегам