Apa kata yang paling sering?
Diberi kalimat, program Anda harus melewatinya, menghitung frekuensi setiap kata, lalu mengeluarkan kata yang paling sering digunakan. Karena kalimat tidak memiliki panjang yang pasti, sehingga bisa sangat panjang, kode Anda harus sesingkat mungkin.
Aturan / Persyaratan
- Setiap pengajuan harus berupa program atau fungsi lengkap. Jika itu adalah suatu fungsi, itu harus dapat dijalankan dengan hanya perlu menambahkan panggilan fungsi ke bagian bawah program. Hal lain (mis. Tajuk dalam C), harus dimasukkan.
- Harus ada juru bahasa / kompiler gratis yang tersedia untuk bahasa Anda.
- Jika memungkinkan, berikan tautan ke situs tempat program Anda dapat diuji.
- Program Anda tidak boleh menulis apa pun
STDERR
.
- Program Anda harus mengambil input dari
STDIN
(atau alternatif terdekat dalam bahasa Anda).
- Celah standar dilarang.
- Program Anda harus peka huruf besar-kecil (
tHe
, The
dan the
semua berkontribusi pada hitungan the
).
- Jika tidak ada kata yang paling sering (lihat test case # 3), program Anda seharusnya tidak menghasilkan apa-apa.
Definisi kata ':
Anda mendapatkan daftar kata-kata dengan memisahkan teks input pada spasi. Masukan tidak akan pernah berisi jenis spasi putih selain spasi kosong (khususnya tanpa baris baru). Namun, kata-kata terakhir seharusnya hanya berisi alfanumerik (az, AZ, 0-9), tanda hubung (-) dan apostrof ('). Anda dapat melakukannya dengan menghapus semua karakter lain atau dengan menggantinya dengan spasi sebelum melakukan pemisahan kata. Agar tetap kompatibel dengan versi aturan sebelumnya, apostrof tidak perlu dimasukkan.
Uji Kasus
The man walked down the road.
==> the
-----
Slowly, he ate the pie, savoring each delicious bite. He felt like he was truly happy.
==> he
-----
This sentence has no most frequent word.
==>
-----
"That's... that's... that is just terrible!" he said.
==> that's / thats
-----
The old-fashioned man ate an old-fashioned cake.
==> old-fashioned
-----
IPv6 looks great, much better than IPv4, except for the fact that IPv6 has longer addresses.
==> IPv6
-----
This sentence with words has at most two equal most frequent words.
==>
Catatan: Kasus uji ketiga dan ketujuh tidak memiliki output, Anda dapat memilih salah satu dari yang keempat.
Mencetak gol
Program diberi skor berdasarkan byte. Kumpulan karakter yang biasa adalah UTF-8, jika Anda menggunakan yang lain, silakan tentukan.
Ketika tantangan selesai, program dengan byte terkecil (disebut kode-golf ), akan menang.
Pengajuan
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
/* Configuration */
var QUESTION_ID = 79576; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 53406; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
don't d'ont dont a a
? Apakah akandont
?dont
. Jika tidaka
,. tetapi sebagian besar pengiriman dilakukan, dan begitudont
juga jawaban yang benar.ipv6
output yang valid untuk test case terakhir?Jawaban:
Pyke,
2625 byteCoba di sini!
Atau
2322 byte (tidak bersaing, tambahkan simpul tempat membunuh tumpukan jika salah)Coba di sini!
Atau dengan tanda baca, 23 byte (saya pikir ini bersaing? Komit sebelum diedit)
Coba di sini!
Atau 12 byte (pasti tidak bersaing)
Coba di sini!
sumber
-
dan'
(tanda hubung dan tanda kutip).Jelly , 25 byte
Cobalah online! atau verifikasi semua kasus uji .
sumber
Pyth -
2330 byteHarus ada cara yang lebih baik untuk memasukkan angka dan tanda hubung, tetapi saya hanya ingin memperbaikinya sekarang.
Test Suite .
sumber
Oktaf,
11594 byteAkun untuk kasing tanpa kata yang paling sering digunakan
try
. Dalam hal ini tidak menghasilkan apa-apa, dan "istirahat" sampai Anda menangkap pengecualian.Disimpan 21 (!) Byte berkat saran Luis Mendo (menggunakan output ketiga dari
mode
untuk mendapatkan kata yang paling umum).Aturan telah berubah sedikit sejak saya memposting jawaban asli saya. Saya akan melihat ke regex nanti.
sumber
mode
dic
mungkin? Keluaran ketiganya memberikan semua nilai terikat, jika saya ingat dengan benar['\w\d]
karena Anda harus mempertahankan tanda kutip dan angka. Kecuali kalau ada di antara huruf besar dan kecil di ASCII, dalam hal ini abaikan saya karena saya tidak punya meja berguna.[~, ~, out] = mode([1 1 2 2 1 2 3 4 5 5])
memberiout = {1 2}
Perl 6, 80 byte
Mari kita bagi jawaban menjadi dua bagian ...
given
adalah pernyataan kontrol (sukaif
ataufor
). Di Perl 6, mereka diizinkan sebagai postfix. (a if 1
, atau seperti di sini,foo given 3
).given
menempatkan topiknya (sisi kanan) ke dalam variabel khusus$_
untuk sisi kiri."Topik" itu sendiri menurunkan (
lc
), dibagi dengan kata (words
), menempatkan nilai ke dalam Tas (diatur dengan jumlah kejadian), lalu mengurutkan berdasarkan nilai (DESC). Sejaksort
hanya tahu bagaimana untuk beroperasi pada daftar, yangBag
berubah menjadiList
dariPair
s di sini.bersyarat sederhana (
?? !!
digunakan dalam Perl 6, bukan? :
).Hanya memeriksa bahwa daftar memiliki lebih dari satu elemen.
Akses ke
$_
dapat dipersingkat ... Dengan tidak menentukan variabel..a
persis seperti$_.a
. Jadi ini efektif "apakah kedua elemen teratas memiliki jumlah kejadian yang sama" - Jika demikian, maka kita mencetak '' (string kosong).Jika tidak, kita mencetak kunci atas elemen (hitungan):
.[0].key
.sumber
value??!!
(saya tahu itu operator ternary, hanya menghibur)05AB1E , 30 byte
Kode:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
I
perintah, 05AB1E hanya akan mengambil sebanyak yang dibutuhkan.JavaScript (ES6), 155 byte
Berdasarkan jawaban Blue @ Python.
sumber
Python 3.5,
142137134112117110127 byte:( +17 byte, karena tampaknya walaupun ada kata-kata yang lebih sering daripada yang lain, tetapi mereka memiliki frekuensi yang sama, tidak ada yang masih harus dikembalikan. )
Seharusnya sekarang memenuhi semua persyaratan. Kiriman ini mengasumsikan bahwa setidaknya 1 kata adalah input.
Cobalah secara Online! (Ideone)
Juga, jika Anda menginginkannya, berikut adalah versi lain dari fungsi saya tanpa ekspresi reguler dengan biaya sekitar 43 byte, walaupun yang ini tidak kompetitif, jadi tidak masalah. Saya hanya meletakkannya di sini untuk itu:
Coba Versi Baru Online ini! (Ideone)
sumber
That's
adalah kontraksi untukthat is
padahalthats
sebenarnya bukan kata.Ruby,
9492102 byteHarus cepat (jawaban FGITW). Mengembalikan kata dalam semua huruf besar, atau
nil
jika tidak ada kata yang paling sering.Sekarang diperbarui untuk spesifikasi baru, saya pikir. Namun, saya berhasil sedikit menurunkan golf sehingga jumlah byte sama!
sumber
Gotta go fast
?Pyth, 32 byte
Suite uji.
sumber
JavaScript (ES6), 99 byte
sumber
Sqlserver 2008, 250 byte
Cobalah online!
Sqlserver 2016, 174 byte
Tidak dapat menangani data seperti contoh ini (menghitung sama dengan 3 kata):
sumber
GROUP BY, LEFT JOIN, or PARTITION BY
Lagi pula SQL Server telah membangun fungsi SPLIT. Demo yang tidak dikelompokkan merasa bebas untuk membuatnya sesingkat mungkin.PostgreSQL,
246, 245 byteKeluaran:
Masukan jika ada yang tertarik:
Biasanya saya akan menggunakan
MODE() WITHIN GROUP(...)
dan itu akan jauh lebih pendek, tetapi itu akan melanggar:EDIT:
Penanganan
'
:SqlFiddleDemo
Keluaran:
sumber
R, 115 byte
Ini adalah fungsi yang menerima string dan mengembalikan string jika satu kata muncul lebih sering daripada yang lain dan
NULL
sebaliknya. Untuk menyebutnya, tetapkan ke variabel.Tidak Disatukan:
sumber
Retina, 97 byte
Aturan terus berubah ...
Cobalah online!
Suite uji.
sumber
a
menjadi kata paling umum di sana)Python, 132 byte
Kode di atas mengasumsikan bahwa input memiliki setidaknya dua kata.
sumber
\w
termasuk garis bawah.PHP, 223 byte
sumber
Python 2, 218 byte
Mengasumsikan lebih dari 2 kata. Menyingkirkan tanda baca menghancurkan saya ...
sumber
',-
dll?sorted
ke tuple daripada harus mengindeks ke dalam array secara manual?Matlab (225)
.
Kotak alat diperlukan untuk menjalankan ini.
Bagaimana cara kerjanya, salah satu hak istimewa terbaik dari regex ganti di matlab ini itu bidang-mengeksekusi token dengan memanggil fungsi eksternal-lingkungan parameter dengan token yang ditangkap di lingkungan bagian dalam, sehingga setiap urutan
"Word_A Word_B .."
digantikan oleh bilangan bulat di"A0 A1 A2 B0 B1 B2 ..."
mana bilangan bulat pertama adalah numerica ascii tanda tangan kata, yang kedua adalah indeks awal, yang ketiga adalah indeks akhir, dua bilangan bulat terakhir ini tidak menggandakan di seluruh urutan jadi saya mengambil keuntungan ini untuk memindahkannya ke sebuah array, kemudian mode kemudian mencari menghasilkan array itu, sehingga indeks awal / akhir akan mengikuti.Sunting: setelah mengubah beberapa detail, program ini disebut fungsi oleh parameter string.
20 byte disimpan berkat @StewieGriffin, 30 byte menambahkan cela ke celah yang disepakati bersama.
sumber
05AB1E ,
222120 bytePenjelasan:
Catatan: Jika Anda baik-baik saja dengan mengekor baris baru di output untuk saat Anda seharusnya tidak menghasilkan apa-apa, hapus
?
di akhir untuk menyimpan byte.Catatan # 2: Program tidak akan bekerja dengan satu kata, tapi saya ragu ini akan menjadi masalah. Jika Anda ingin memperbaikinya, ganti
#
denganð¡
byte tambahan.05AB1E menggunakan CP-1252 sebagai charset, bukan UTF-8.
Cobalah online!
sumber
Perl,
60565554 byteTermasuk +3 untuk
-p
Jika sebuah kata tidak bisa hanya angka, Anda juga dapat menjatuhkan
a
untuk skor 53.sumber
-anE
tidak dihitung? Itu dilakukan pada jawaban lain (+2 byte untuk-p
bendera) ...E
tidak dihitung. Jawaban lain biasanya hanya harus melakukan +1 bytes-p
, tetapi solusinya memiliki'
sehingga tidak dapat dilihat sebagai perpanjangan dari-e
atau-E
. Jadi dia seharusnya menghitung +3 (bukan +2) karena dia harus menghitung spasi dan tanda hubung (tetapi setiap opsi tambahan hanya akan diberi +1).[\pL\d-]
sepertinya bisa menyusut ke[\w-]
(kecuali kami peduli tentang garis bawah) tetapi versi mana pun akan melaporkanthat
alih-alihthat's
atauthats
untuk pengujian 4. Jika tidak, Anda perlu menambahkan 4 byte untuk dimasukkan ke\x27
dalam kelas karakter tersebut (kecuali jika Anda memiliki cara yang lebih baik untuk menambahkan apostrof).PowerShell (v4), 117 byte
Bagian pertama cukup mudah:
$input
is ~ = stdinGroup
berdasarkan frekuensi (~ = collections.Counter Python),Sort
untuk memasukkan kata yang paling sering di akhir.Menangani jika tidak ada kata yang paling sering:
Gunakan golf bool-as-array-index palsu-ternary-operator
(0,1)[truthyvalue]
, bersarang, untuk memilih "", $ z atau $ y sebagai output, lalu ambil .Name.sumber
Lua,
232199175 bytesumber
if not w[x]then w[x]=0 end w[x]=w[x]+1 end
->w[x]=(w[x]or0)+1
if m==v then o=''end
->o=m==v and '' or o
Perl 5,
969284 + 2 (-p
bendera) = 86 byteMenggunakan:
sumber
-p
Bendera Anda harus meminta penalti 3 byte. Aturannya kira-kira: Setiap flag commandline adalah +1 byte karena itu adalah berapa banyak byte tambahan yang Anda butuhkan untuk memperpanjang-e'code'
commandline gaya bebas Anda . Jadi normalnya-p
hanya +1 byte. Tapi di sini kode Anda sudah'
jadi tidak bisa dijalankan hanya dari commandline tanpa melarikan diri. Jadi, tidak ada penggabungan dengan-e
dan ruang-
serta sebelump
ekstra dan harus dihitung juga-p
bendera) jika Anda memanggilnya pada baris perintah sebagaiperl -pe'…'
(tersedia dengan menghapus'
seperti yang tercantum dalam komentar pertama)Python, 158 byte
Mengambil inputnya seperti ini:
Haruskah cocok dengan semua persyaratan, meskipun gagal pada string kosong, apakah perlu untuk memeriksa mereka? Maaf atas keterlambatannya.
Saran / umpan balik / tipuan ilmu hitam untuk menghemat byte selalu diterima
sumber
That
sebagai kemunculan katathat
karena yang pertama dimulai dengan huruf besarT
dan yang terakhir dimulai dengan huruf kecilt
. Juga, ini TIDAK menghapus semua bentuk tanda baca lain kecuali tanda hubung (-
) dan, secara opsional, tanda kutip ('
) dan sebagai hasilnya, ini TIDAK akan berfungsi untuk kasus uji keempat yang diberikan dalam pertanyaan.This sentence has no most frequent word.
) sebagai contoh, fungsi Anda menghasilkan[('This', 1)]
, padahal seharusnya tidak menghasilkan apa-apa. Saya dapat terus dan terus tentang lebih banyak masalah, jadi saya akan merekomendasikan memperbaikinya secepat mungkin.\w
termasuk garis bawah.Tcl 8.6, 196 byte
(Sayangnya, saya tidak tahu bagaimana cara mendapatkannya lebih kecil dari itu ...)
Penjelasan
Ini menggunakan beberapa idiom Tcl jelas untuk melakukan hal-hal.
[join [read stdin] " "]
- input string → daftar kata yang dipisahkan spasilmap ...
- beralih ke setiap elemen dari daftar itu. (Lebih pendek dariforeach
dan secara identik identik karena hasilnya dibuang.)[regsub ... [string tolower ...]]
- Konversi string menjadi huruf kecil dan strip semua karakter kecuali untuk karakter kata dan tanda hubung.[dict incr d ...]
- Membuat / memodifikasi kamus / kata → hitung histogram.set y ...
- Urutkan nilai kamus, ambil yang terbesar, dan kembalikan semua (kunci, nilai) pasangan yang sesuai dengannya.if...
- Harus ada tepat dua elemen: satu pasangan (kunci, nilai), jika tidak ada yang perlu dicetak.puts...
- Cetak kunci pada pasangan nilai kunci, jika ada. (Tidak ada kata yang memiliki spasi.)Anda bisa bermain dengannya menggunakan CodeChef .
sumber
Rexx,
109128122 byteCukup dicetak ...
sumber
bash,
153146131154149137byteOperasi:
mendeklarasikan array asosiatif F dari integer (menyatakan -iA F)
f adalah fungsi yang, mengingat parameter kata $ 1, menambah jumlah frekuensi untuk kata ini (T = ++ F [$ 1]) dan membandingkan dengan jumlah maksimum sejauh ini (M).
Jika sama, kita memiliki dasi sehingga kita tidak akan menganggap kata ini paling sering (I =)
Jika lebih besar dari jumlah maksimum sejauh ini (M), maka atur jumlah maksimum sejauh ini untuk jumlah frekuensi dari kata ini sejauh ini (M = $ T) dan ingat kata ini (I = $ 1)
Fungsi akhir f
Baca garis (baca L) Buat huruf kecil (L = $ {L ,,}) Hapus karakter apa pun kecuali az, 0-9, tanda hubung (-) dan spasi (L = $ {L // [^ - a-z0- 9]}) Buat urutan pernyataan bash yang memanggil f untuk setiap kata (printf -vA "f% s;" $ L). Ini disimpan ke variabel A. eval A dan hasil cetak (eval $ a; echo $ I)
Keluaran:
Bug: TETAP Saya memiliki bug yang tidak terungkap dalam kasus uji ini. Jika input
maka kode saya seharusnya tidak menghasilkan apa-apa.
Saya memiliki perbaikan tetapi saya tampaknya telah memukul bug bash ... Saya mendapatkan perilaku yang sangat aneh adalah M tidak dinyatakan sebagai bilangan bulat: ++ F [$ 1] == M (setelah beberapa kata berulang) menambah kedua F [$ 1 ] dan M !!- kesalahanku.sumber
Python 3,
7698100 byteCobalah online
Menghasilkan kata yang paling umum sebagai huruf kecil. Tidak termasuk apostrof karena "apostrof tidak diharuskan untuk dimasukkan."
statistics.mode
membutuhkan Python 3.4Sayangnya, tidak ada output
stderr
yang diizinkan, atau itu akan jauh lebih pendek.sumber
STDERR
, kecuali program ini tidak menghasilkan output kesalahan?i- test i-
R, 96 byte
19 byte lebih pendek dari jawaban R yang ada , dengan pendekatan yang agak berbeda.
Membaca dari stdin, sehingga input secara otomatis dipisahkan oleh spasi. Kami mengonversi menjadi huruf kecil dan digunakan
gsub
untuk menghapus semua non-alfanumerik (plus-
dan'
). Kami menghitung contoh setiap kata dengantable
dan menyimpan hasilnyat
. Selanjutnya, kami memeriksa apakah ada lebih dari 1 maksimum dalamt
(dengan melihat apakah ada lebih dari satu elemen yang sama denganmax(t)
. Jika demikian, kami mengembalikan string kosong''
. Jika tidak, kami mengembalikan kata yang sesuai dengan maksimum dalamt
.sumber