En sık kullanılan on yüz kelime


9

Bu soru yazılmıştır, çünkü "Şey Açıklayıcı" okuması eğlenceli ve bana bir fikir verdi.

Bir dizi harf, sayı ve bunun gibi şeyleri okuyan / alan "#%|?ve True / 1tüm sözcükler bu kümenin bir parçasıysa geri dönen "bilgisayarı bir şeyler yapan şeyler" yazın .

Tüm kelimeler bu kümenin parçası değilse, parçası olmayan sözcükleri döndürün.


Bu web sitesi her durumda doğru kabul edilebilir. Kurallar, o sitedeki özellikleri takip etmek için yazılmıştır.


Örnekler:

Gerçek :

İlk yatay çizginin üzerindeki metnin tamamı giriş olarak yapıştırılırsa, kod bir doğruluk değeri döndürmelidir.

Aşağıdaki satırlar doğruluk değeri döndürmelidir (giriş birbirinden ayrılır ###)

This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true

Falsey :

Aşağıdaki örneklerde, giriş ve çıkış birbirinden ayrılmıştır ***. Farklı test senaryoları ile ayrılır ###.

This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false

Daha ayrıntılı kurallar:

  • Sen kullanabilirsiniz Bu kodunuzu test etmek.
  • Harf olmayan karakterler, kod gibi boşluklar olarak yorumlanır 'wasn't'. Apostrophes döndüren kelimeler truelisteye dahil edilir
    • Örneğin: foo123bardönmeli foove barlistenin bir parçası olmadıklarından 123boşluk olarak yorumlanmalı
  • Giriş yalnızca yazdırılabilir ASCII kod noktalarını içerecektir [10, 32-126].
  • Kelimeler karışık harf içerebilir. İkinci test senaryosuna bakın.
  • Kelimelerin listesi
    • girdi olarak alınmalıdır (STDIN, işlev bağımsız değişkeni veya eşdeğeri)
    • değiştirilebilir (kelimeler satırsonu, virgül vb. ile ayrılabilir ve listeyi sıralayabilirsiniz)
    • Bu listeyi kullanamayacağınızı unutmayın (aynı değil)
  • Çıktı istediğiniz herhangi bir formatta olabilir
  • Çıktı üst, alt veya karışık olabilir (isteğe bağlı)
  • Çıktıda sembol olmamalıdır

Kayıt için, Jonathan Allan garip bir köşe davası buldu: XKCD'deki uygulama, bir sonraki kesme işleminden sonraki [AZ] [az] [']' ye kadar olan harfleri yok sayar find's foundve find'qazxswedc found'her ikisi de hiçbir şey find'qazx.swedc founddöndürmez. swedc.

Eğer hiçbir şey dönmek istiyorsanız seçebilir find'qazxswedc found'veya geri dönüşü qazxswedc. Dönen qazx, swedciçin find'qazx.swedcde sorun yok.



Olumlu değilim ama bir dupe. Basit olmayan kelimeleri döndürmeniz gerektiğinden meydan okumanız biraz farklıdır. Ve sizin lehinize, aslında günlük İngilizce yazılmış normal bir spesifikasyonunuz var. codegolf.stackexchange.com/questions/53323/…
James

Döndürme türünü ifade edemeyen Booleanveya Array<String>boş bir dizi / liste döndürmeye izin vermeyen statik olarak yazılmış bir dil için izin verilebilir mi?
CAD97

@ CAD97 tüm kelimelerin basit olduğu durumda? Doğruluk değerini nasıl görüntülemek istediğinizi seçebilirsiniz, bu bir tamsayı / dize olabilir 1. Boş bir çıktıya izin verilmez.
Stewie Griffin

find'qazxswedcGirdi için kuralların yeni açıklamasıyla kafam karıştı . Kesme işaretlerine ayrılmamalı mıyız, değil miyiz? Örneğin, isn'tdöndürür true(listede yer alır), ancak listede olmadığı için isndöndürür isn. Bu mantığa göre, "kesme işaretlerine bölme" ile gittim ve böylece find'qazxswedc foundgeri döndü find'qazxswedc.
AdmBorkBork

Yanıtlar:


2

PowerShell v3 +, 105 92 bayt

param($a,$b)$x=@();-split($b-replace"[^a-zA-Z']",' ')|%{if($_-notin$a){$x+=$_}};($x,1)[!$x]

Gibi basit kelimeler $ave gibi kelimeler alır $b. Yardımcı olur $x. Her kelimeyi alın $bve kötü olmayan harflerden kurtulun, sonra her birini kontrol edin |{...}. Eğer bu kelime içinde değilse, o kelimeye $aekleriz $x. Sonunda, seçiyoruz $xya 1da etmiyoruz $x. Bu ya wordsya gönderilir 1.

Denemek için bazı kelimeler

PS C:\Tools\Scripts\golfing> ('This returns "Hello, World!"','tHiS rEtUrNs TrUe...','Thing Explainer is a book written by a man.
The man writes books with simple words.','This set of stuff "¤!^¤>7\ must return true'|%{"$_";(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This returns "Hello, World!"
###
1
###
tHiS rEtUrNs TrUe...
###
1
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
1
###
This set of stuff "¤!^¤>7\ must return true
###
1

PS C:\Tools\Scripts\golfing> ("This code doesn't returns Hello, World!",'tHiS rEtUrN"s false...'|%{"$_`n***`n"+(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This code doesn't returns Hello, World!
***
code
###
tHiS rEtUrN"s false...
***
s false

2

Python, 93 bayt

import re
lambda w,s:[w for w in re.sub("[^'\w]|\d|_",' ',w).split()if w.lower()not in s]or 1

Tüm test senaryoları ideone'de

Listenin ön işleme bölmek |ve koymak set(ki ön sıralama izin verilirse iyi olduğunu düşünüyorum). Kelime olarak wve grubu olarak girin s.

Buna izin verilmezse, bu 98 bayt not in shaline gelir not in set(s).

Büyük ve küçük harflerin tüm permütasyonlarına sahip olmak ve 8 bayt tasarruf etmek için önişleme yapabiliriz, ancak bunun çok ileriye gidebileceğini düşünüyorum (bu büyük bir set olurdu).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.