У меня есть задача найти слова, которые есть в каждом предложении.Найти общие слова в предложениях с Ruby
Учитывая строку, и мы хотим разделить строку на предложения, а затем определить, какие слова, если таковые имеются, во всех предложениях.
Вот мое решение:
# encoding: utf-8
text = ''
File.foreach("lab2.in") do |line|
text += line
end
hash = Hash.new
text = text.gsub(/[\n,]/,'').split(/[!.?]/)
number = 0
text.each do |sen|
number += 1
words = sen.split(/ /)
words.each do |word|
if hash[word]
hash[word] += "#{number}"
else
hash[word] = "#{number}"
end
end
end
flag = false
needle = ''
count = text.length
for i in 1..count
needle += "#{i}"
end
hash.each do |word|
if word[1].squeeze == needle
puts "this word is \"#{word[0]}\""
flag = true
end
end
if !flag
puts "There no such word"
end
Как эта задача может быть решена, возможно, более очаровательно? Меня интересуют методы библиотеки Ruby. Простое решение, такое как характерный характер, я уже знаю.
Например, вход как:
lorem ipsum dolor and another lorem! sit amet lorem? and another lorem.
Выход будет:
this word is "lorem"
Что ожидается вход и выход? – infused
Например, ввод: lorem ipsum lorem dolor sit amet. a tot toje est lorem! i tuta toje lorem? – skad0
И выход будет этим словом «lorem» – skad0