Giriş ∩ Kaynak Kodu


70

giriş

Buradaki zorluk, kendi kaynak kodunun kesişimini ve verilen bir dize girişini yazdıran bir program / işlev oluşturmaktır. Bu kod golf ve daha kesin olmak gerekirse:

  • Let Igirişi ayarlanmalıdır
    • {"a","b","c"}
  • Izin Skaynak kod kümesi
    • {"b","f"}
  • O zaman kavşak paylaştığı şeydir
    • I ∩ S = {"b"}

Giriş

Giriş esnektir. Kaynak kod için kullanılan karakter kodlamasını kullanabilmelidir.

Çıktı

Çıktı esnektir. Giriş ve kaynak kodunun paylaştığı karakter kümesi olmalıdır. Ayrıca, kümeler farklı nesnelerin sıralanmamış koleksiyonlarıdır. Özetle:

  • Çıktı esnektir:
    • Herhangi bir veri yapısı olabilir (string veya başka)
    • Sırasız olabilir
    • İzinde olabilir \n
    • Farklı olmalı

kısıtlama

zorluklara benzer şekilde , program / işlev kendi kaynak kodunu okuyamayabilir ve 0 baytlık çözümlere izin verilmez.

Örnekler

  • 1.
functor x(I){ return I ∩ self; }

Inputs                                Outputs
------                                -------
enter preformatted text here      ->  {"e","n","t","r","f","o","x"}

["Albrt"," Einstin"]              ->  {"l","r","t","n","s"}
  • 2.
(_)->_&"(_)->&\"\\"

Inputs                                Outputs
------                                -------
"Security at the expense of       ->  "
usability comes at the expense 
of security."

(0____0)                          ->  (_)
  • 3.
ಠa益длф


Inputs                                Outputs
------                                -------
Far out in the uncharted backwaters ->"a"    
of the unfashionable end of the 
Western Spiral arm of the Galaxy lies 
a small unregarded yellow sun. 
Orbiting this at a distance of roughly 
ninety-eight million miles is an 
utterly insignificant little blue-green 
planet whose ape-descended life forms 
are so amazingly primitive that they 
still think digital watches are a pretty 
neat idea.

(ノಠ益ಠ)ノ彡┻━┻                      ->"ಠ益"

Test Kılıfları

Albert Einstein

\__( O__O)_/

!@#$%^&*()_+{}|:"<>?

1234567890-=[]\;',./

(ノಠ益ಠ)ノ彡┻━┻

“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”

┬──┬ ノ( ゜-゜ノ)

Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think digital watches are a pretty neat idea.

Güncelleme

  • [16-08-10]: kümeler farklı nesnelerin sıralanmamış koleksiyonlarıdır
  • [16-08-10]: takip eden yeni satır kabul edilebilir

2
Çıktı yinelenen karakterler içerebilir mi?
Dijital Travma,

1
@DigitalTrauma Örneklerden # 1, # 2 ve # 3 örneklerinde görünmüyor
Luis Mendo

@DigitalTrauma Belirsizlik için üzgünüm, setler (matematiksel anlamda) düzeni yok sayar ve tekrarları olmaz.
NonlinearFruit

22
Dilin standart sırasına dayanmayan en iyi çözümlerin bulunmadığı genelleştirilmiş bir sıraya sahip olduğunuz için tebrikler . :)
Martin Ender

1
Bir kümenin tekrarı olmaması gerekiyorsa, giriş kümelerinin de tekrarı içermemesi gerekir mi? Yoksa giriş aslında ayarlanmamış mı?
user81655 11:16

Yanıtlar:


24

Jöle , 10 6 bayt

“Ṿf”Ṿf

Çevrimiçi deneyin!

Nasıl çalışır

“Ṿf”Ṿf  Main link. Argument: s (string)

“Ṿf”    Set the return value to 'Ṿf'.
    Ṿ   Uneval; yield '“Ṿf”'.
     f  Filter; remove the characters from '“Ṿf”' that do not appear in s.

15

Python 3, 44 bayt

Beni bir bayt kurtardığın için teşekkürler Karl :-) Beni iki bayt kurtardığın için teşekkürler Dada!

Bunun işe yaradığını düşünüyorum, ancak bu benim ilk quine mücadelem, bu yüzden% 100 emin değilim. : \

print(set("printseu()&'"+'+"')&set(input()))

43 byte'lı Lambda versiyonu: lambda a:set(" lambdaset()&'"+':+"')&set(a)


8
'eroticpuns\()&\''dizeleri eklemekten daha kısa. (kaçtı 'ama sonradan `\` ekine ihtiyacınız var.) Nokta neden orada?
KarlKastor

Woops, .daha az golf kurallarından bir kalıntı oldu. Ters eğik çizginin kullanılması işe yaramaz çünkü o zaman \` is \\ ` çıktısı ve giriş karakterinin çoğaltılmasına izin verilmez.
Jeremy,

1
Lambda eksik :.
Dennis,

@Dennis teşekkürler. Programdaki tüm karakterleri bulmaya çalıştıktan sonra gözlerim bulanıklaşmaya başlıyor;)
Jeremy

1
@Dada: Dilerseniz, bu olabilir inspectour, nicestupor, poeticurns, nopictures, recountspi, veya inputscore. Veya kullanabileceğiniz yenisi için prunesit(golfçülerin yaptığı kodun doğru bir açıklaması!) ipunsterVeya nursepitdiğerleri arasında kullanabilirsiniz.
Deusovi

11

Dyalog APL , 8 bayt

'∩''⊢'∩⊢

, bu karakterleri, sağ argümanda bulunan sol argümandan döndürür ( sol argümanın yinelemesi yoksa - bu durumda olduğu gibi), sonuçta yinelenen de olmaz

argüman

Sonra dize sadece bu iki artı tırnak işareti karakterine sahiptir (dize içinde olduğu gibi iki katına çıkar).

TryAPL çevrimiçi!


10

GolfScript, 6 bayt

"`&"`&

Çevrimiçi deneyin!

Nasıl çalışır

        # (implicit) Push the input on the stack.
"`&"    # Push the string '`&' on the stack.
   `    # Inspect; turn the string into '"`&"'.
     &  # Perform set intersection.

9

Python 2, 56 46 39 Bayt

@Jeremy sayesinde -1 Bayt

lambda a:set(':&()smelt\ bad\'')&set(a)

anonim lambda işlevi, bir dize alır, bir küme döndürür

eski versiyon:

lambda x,w=set('newmatrixbuspdl_:-)(=,\ \''):w-(w-set(x))

Bunu beğendim, ancak yalnızca bir tane yerine "\\" üzerine iki ters eğik çizgi döndürüyor.
Jeremy,

Ayrıca, lambda adını değiştirerek bir bayt kurtarabilir düşünüyoruma
Jeremy

1
@Jeremy Bahşiş için teşekkürler '\\', sadece Python'un sicim biçiminde bir ters eğik çizgiyi temsil etme yöntemidir, çünkü tek bir tanesi son alıntıdan kaçar, bu nedenle çalışabilmesi için ters eğik çizgiden kaçmak zorunda kalırsınız. Yazın print '\\'ve göreceksiniz ki bu sadece bir ters eğik çizgi için temsildir.
KarlKastor

36 ile alabilirsiniz lambda a:{*''' lambda&':{}*'''}&{*a}.
Morgan Thrapp

1
@MorganThrapp 35lambda a:{*' lambda&\\\':{}*'}&{*a}
see

9

Perl 6 , 56, 55 bayt

" Fransızca " / Unicode sürümü (55 bayt)

say perl q.say perlq$*IN\\\.comb:..comb$*IN.comb:

" Texas " / ASCII sürümleri (56 bayt)

say (q.sayq(&) $*IN\\\.combperl..comb (&)$*IN.comb).perl
say perl q.sayq(&) $*IN\\\.comb:perl..comb (&)$*IN.comb:

Sigara golfed:

my \Source = 'my \\Source = \'say ( $*IN.comb.Set ∩ Source.comb.Set ).perl\'';
say ( $*IN.comb.Set  Source.comb.Set ).perl

Örnekler:

$ echo -n 'say perl q.say perlq∩$*IN\\\.comb:..comb∩$*IN.comb:' > test-unicode.p6

$ echo -n 'say (q.sayq(&) $*IN\\\.combperl..comb (&)$*IN.comb).perl' > test-ascii.p6

$ perl6 test-ascii.p6 <<< 'abcdefghijklmnopqrstuvwxyz'
set("p","a","l","r","c","q","b","s","e","m","y","o")

$ perl6 test-unicode.p6 < test-unicode.p6
set("\\","I","p"," ","a","c","l","r","q","b","∩","*","s","m","e",".","y",":","o","N","\$")

$ perl6 test-ascii.p6 < test-ascii.p6
set("p","\\","I"," ","a","l","r","c","q","b",")","*","s","e","m","\&",".","(","y","o","N","\$")

$ perl6 test-ascii.p6 < test-unicode.p6
set("p","\\","I"," ","a","l","r","c","q","b","*","s","e","m",".","y","o","N","\$")

$ perl6 test-unicode.p6 <<< 'Albert Einstein'
set(" ","l","r","b","s","e")

$ perl6 test-unicode.p6 <<< '\__( O__O)_/'
set("\\"," ")

$ perl6 test-ascii.p6 <<< '!@#$%^&*()_+{}|:"<>?'
set(")","*","\&","(","\$")

$ perl6 test-unicode.p6 <<< "1234567890-=[]\\;',./"
set("\\",".")

$ perl6 test-unicode.p6 <<< '(ノಠ益ಠ)ノ彡┻━┻'
set()

“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”
set("o")

$ perl6 test-unicode.p6 <<< '┬──┬ ノ( ゜-゜ノ)'
set(" ")


$ perl6 test-ascii.p6 <<< 'Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think digital watches are a pretty neat idea.'
set("p"," ","a","l","r","c","b","s","e","m",".","y","o")

2
Does not $*PROGRAMprogramın kaynak koduna erişim ve böylece kurallarını ihlal?
celtschk

@celtschk Göndermeden önce soruyu tekrar okumalıydım, düzeltildi. (Teknik olarak derleyici $*PROGRAMderlenen programda tüm kaynağı okunan ve tüm kaynakların gri bir alana koyan bir dize olarak saklayabildiğini görebilirdi. )
Brad Gilbert b2gills

8

MATL , 8 bayt

'X&'''X&

Çevrimiçi deneyin!

Giriş, tek tırnak içine alınmış bir dizedir. Dize, tek bir alıntı sembolü içeriyorsa, ondan kaçmak için çoğaltılmalıdır.

açıklama

'X&'''   % Push string with the three characters used by the program. The single-quote 
         % symbol needs to be escaped by duplicating it
X&       % Take input implicitly. Set intersection. Display implicitly

6

Aslında, 6 bayt

`∩è`è∩

Çevrimiçi deneyin!

Açıklama:

`∩è`è∩
`∩è`    push the function `∩è` (which contains every character in the source code except '`')
    è   repr (same as Python repr - leaves "`∩è`", which contains every character in the source code)
      ∩ set intersection with input

5

Haskell (30 bayt)

Bu çok sıkıcı bir çözüm ... Ama daha iyisini yapamam. :(

filter(`elem`"f(term)\"i`l\\")

5

Brachylog , 23 bayt

:{e.~e":{}e~\"fd\."}fd.

Çevrimiçi deneyin!

açıklama

:{                 }f      Find all chars that verify the predicate below
                     d.    Remove duplicates and output

  e.                       Take a char from the input ; this is our output…
    ~e":{}e~\"fd\."        … if that char is in the string :{}e~"fd. (the first \ is here
                               to escape the ")

1
Sohbet odamıza bakabilir misin?
Sızdıran Rahibe

1
Bıyıklı adam :{ve şaşırmış bıyıklı adam için +1:{}
Yıkılabilir Limon,


4

C, 142 bayt

main(i){char*p,a[]="remain([*]){fought?>:01;,\\\"=capsv+-l}";for(;(i=getchar())>=0;p?putchar(i),memmove(p,p+1,a+strlen(a)-p):0)p=strchr(a,i);}

İdeone üzerinde deneyin .


2
Ungolfed versiyonu ve / veya açıklaması çok iyi olurdu!
YSC

Sen kullanılmış olabilir sizeof ayerine strlen(a)kurtaran kişi byte için değil daha iyi Array bilinen bir boyut vermektir: a[99]="..."ve yerine strlen(a)göre 995 bayt tıraş etmek.
G. Sliepen,

Başka bir 3 ya da 4 bayt yerine kaydedilebilir (i=getchar())>=0ile read(0,&i,1). Bu küçük endian makinelerinde çalışır. iProgramı herhangi bir argümanla çalıştırmazsanız 1 olarak başlatılır. Büyük-endian makinelerinde de çalışmasını istiyorsanız, i'yi argüman listesinden kaldırın main()ve onu cismin içinde bir karakter olarak ilan edin (ancak sadece 3 bayt kaydedin). read()EOF'ye 0 döndürür.
G. Sliepen

4

CJam, 8 bayt

"`q&"`q&

Burada dene.

Açıklama:

"`q&"    e# Push that string to the stack
     `   e# Stringify, pops the string and pushes "\"`r&\"" to the stack
      q  e# Pushes the input to the stack
       & e# Union, pops two elements and pushes a list of every element that is contained in both.


4

Retina, 21 20 bayt

Kaynak kodda olmayan karakterleri kaldırır, sonra yinelenen karakterleri kaldırır.

[^Ds.n\n[-a_-]

Ds`.

Çevrimiçi deneyin


Kaynak kodunuz bir satır beslemesi içeriyor (çıktınız yok).
Martin Ender

Daha önce de aynı çözümü kullanmıştım, ancak göndermeyi unuttum. Aralık ile birkaç bayt kaydedebilirsiniz [-a(ve sonra bir alt çizgi ve kısa çizgi ekleyin ve arka çizgiyi ikinci satıra bırakın). Ancak gelecekteki referans için, ]ilk karakter olarak koyarsanız kaçmaya gerek kalmaz. Oh ve güzelliği için, takip eden satır beslemesini önlemek için iki aşamayı değiştirebilirsiniz.
Martin Ender

@MartinEnder Bu, satır beslemesini hala tekilleştirmiyor, bu bir problem mi?
mbomb007

Oh haklısın, bunu farketmedim. O szaman seçeneklerine Dve karakter sınıfına eklemelisin .
Martin Ender

4

Mathematica, 35 bayt

Characters@"\"#&@C\acehrst⋂"⋂#&

Anonim işlev Oluşturulan mesajları yoksay. Girdi olarak bir karakter listesi alır ve çıktı olarak bir karakter listesi döndürür. Unicode karakteri U + 22C2'dir \[Intersection].



4

Vim, 78 68 78 79 61 tuş vuruşlarını

Yaklaşımımı tamamen değiştirdim:

oo/\$kjxd<esc>/o<cr>xj$/\/<cr>xj$/\\<cr>xj$/$<cr>xj$/k<cr>xj$/x<cr>xj$/j<cr>xj$/d<cr>xkdd

Nasıl çalışır:

Öncelikle, tüm program karakterleriyle bir çizgi oluşturur, daha sonra, giriş ve çıkış kesiştiğinde giriş veya içindeki girişleri sildiğinde, program karakterlerinin her birinin ilk örneğini bulur. dosya, dosyanın son karakterine gider (böylece etrafına sarılır) ve d'dekiler hariç, kaynaktaki her benzersiz karakter için, dosyanın sonuna gitmek yerine girdiyi silerek bitirir.


Ters eğik çizgi kodunuzda ancak dizenizde görünmüyor.
Titus,

Üçüncü değil mi?
Yıkılabilir Limon

4

Bash , 45 50 41 39 37 34 29 bayt

Geoff Reedy sayesinde -9 bayt
Dennis sayesinde -4 bayt
Nahuel Fouilleul sayesinde -5 bayt

grep -o '[] [|\'\'grepouniq-]

Çevrimiçi deneyin!


Sadece bir grep komutuna ihtiyacınız yok mu?
Geoff Reedy

@GeoffReedy İlk grep komutu, girişi satır başına bir karaktere böler.
Dennis,

Doğru ama -o ikinci sıranın üzerine koyamazdım
Geoff Reedy

Haklısın ve bu da '.' İçin kontrol etmek zorunda kalıyor. Teşekkürler!
Riley,

1
@Titus BASH bir şey yaptıktan sonra, grep alır -ove [] [|\'grepouniq-]. Bu yüzden bunların herhangi bir şey arıyor: [ ] {space} [ | {slash} ' g r e p o u n i q - ].
Riley,

3

PowerShell v4 +, 122 104 bayt

([char[]]($args[0]+'acegfhmnoprstu012|][()"?+_,.$-{0}{1}{2}'-f("'","}","{"))|group|?{$_.count-gt1}).name

Ugh. Dize değiştirme biçimlendirmesi çok tıkayıcı olduğundan, PowerShell'deki sorgulara veya sorgu benzeri kod berbat.

ace...{2}Ortadaki dize , kodun geri kalanında bulunan her karakterdir. {0}{1}{2}İle birlikte kullanılır -fçekmeye Ormat operatörü '{}dizesine karakterleri.

Bu girdiyle bir karakter dizisi olarak birleştirildi $args, ardından boru hattına beslendi. İlk durak, Group-Object(esas olarak) giriş nesnelerinin ve girdi içinde kaç kez meydana geldiklerinin bir karmasını oluşturur. Yani taşınıyor oluyor sadece var olan öğeleri seçmek için daha büyük . Parens içinde kapsüle alıyoruz ve hashtable'ın kısmını çıkartıyoruz (v4 + gereksiniminin devreye girdiği yer, yoksa boru hattına ek bir aşamaya ihtiyacımız var ).|?{...}Where-Object.count1.Name|Select Name

Bu elemanlar boru hattında (bir dizi olarak) bırakılır ve yazdırma gizlidir.


3

Python 2,44 bayt

x='c=set;print c(`x`)&c(raw_input())';exec x

Sadece eğlence için, işte tam bir program sunumu. Python 2 kümesinin dize gösterimini verir.


3

JavaScript (ES6), 59 57 bayt

f=
t=>[..."\"().=>O[\\]defilnrtx~"].filter(e=>~t.indexOf(e))
;
<input placeholder=Input oninput=o.value=f(this.value).join``><input placeholder=Output id=o>

Hem orijinal dize / karakter dizisinde hem de kaynak kodda bulunan bir karakter dizisini döndürür. Düzenleme: @ user81655 sayesinde 2 bayt kaydedildi.


f=s=>[...new Set(f+'')]...bayt kurtarabilirdi.
user81655 11:16

Veya daha kısa:f=s=>[...s].filter(c=>(new Set(f+'')).has(c))
user81655 11:16

@ user81655 En azından Firefox'ta kaynak kodunu f+''okuyarak çalışır f. (Bazı durumlarda kaynak dosyayı değiştirerek Firefox'un çökmesine ve ardından ondan yüklenen bir işlevi dizgeye sokmaya çalışmanıza neden olabilir.)
Neil

@ user81655 İkinci örneğiniz syinelenen öğeler oluşturduğunda başarısız oluyor ve yine de indexOfkısa new Set.
Neil

Bu durumda karakter kaydetmeyi deneyebilirsiniz ( cparametreyi listede bulunan bir karaktere değiştirmek gibi ).
kullanici81655

3

Matlab, 37 bayt

Oldukça basit:

intersectKavşak bulmak için yerleşik kullanır . Kaynak kodu kodlanmış zor. Giriş tırnak işaretleri içinde verilmelidir.''

intersect(input(''),'''intersc(pu),')

Anonim bir işlev kullanmalıydın ... seni 5 byte yendi
Sanchises

Hehe, sanırım bu benim en iyi golfüm değildi ...
Stewie Griffin,

3

JavaScript (OS X 10 Krom 58), 12654 12426 11992 Bayt

https://paste.ubuntu.com/25593218/

https://paste.ubuntu.com/25595798/

https://paste.ubuntu.com/25595831/

Orijinal kod:

var t=prompt();"!+()[]".split("").forEach(function(f){if(t.includes(f))alert(f)})

Bu daha sonra sadece bu altı karakteri kullanan jsfk adlı bir programlama stiline dönüştürüldü:

(+)[!] 

bir çevrimiçi derleyici kullanarak.


Eğer dil jsfk ise, onu Javascript yerine başlığında kullanmalısınız.
NonlinearFruit

1
@ NonlineearFruit jsfk bir programlama stilidir . Geçerli bir javascript
Tornado547

2

R, 129 bayt

f=function(s){b=strsplit("f=unctio(s){arpl;,[1]b\\\"qemh0T}",c())[[1]];cat(b[unique(pmatch(strsplit(s,c())[[1]],b,0,T))],sep="")}

Bunu çözersem, dizedeki yeni bir satır gibi garip şeylerin değişmesi gerekir b. Her neyse, süper basittir - içindeki fonksiyondaki tüm karakterleri içeren bir vektör oluşturur. Sonra girişi bir vektöre çeker ve üyeliği kontrol eder.


siteyi neredeyse bir yıldır ziyaret etmediniz, ancak f=function(s)cat(instersect(strsplit(s,"")[[1]],strsplit("f=unctio(s)aerpl,\\\"[1]","")[[1]]),sep="")101 bayt, ve G / Ç formatının daha basit olabileceğini düşünüyorum cat...
Giuseppe

2

Ruby, 34 + nflag = 35 bayt

-nProgramın STDIN'i satır satır işlemesine neden olduğundan , çok satırlı girişle tam olarak çalışmaz . Bu kodda yeni satırlar yoktur, ancak bunun yerine bir satır yerine birden çok dizi oluşturacak bir şey girmeye çalışmak. Spesifikasyona göre bu iyi değilse, lütfen beni bilgilendirin, ben de düzelteceğim.

p $_.chars&"\\\"p $_.chars&".chars

2

ListSharp , 222 bayt

STRG S=READ[<here>+"\\S.txt"]
ROWS T=ROWSPLIT S BY [""]
ROWS R=ROWSPLIT "STRG =EAD[<her>+\".tx]OWPLIBYCFMHVNc#isn()oay\r\n" BY [""]
ROWS R=SELECT FROM T WHERE[EVERY STRG IS ANY STRG IN R]
SHOW=<c#R.Distinct().ToArray()c#>

saçma ama eğlendirdim


2

sed, 47 karakter

:s;st[^])(*\1.s2t:[;^]tt;st\(.\)\(.*\1\)t\2t;ts

Bunun ne kadar sürdüğü, özellikle de tekrarlanan karakterleri kaldırmak için olan bit yüzünden biraz hayal kırıklığına uğradım.


Hangi sed versiyonu bu? GNU sed diyor sed: -e expression #1, char 47: unterminated `s' command.
Dennis,

-R için 1'i içeren 43 bayt: sed -r ':;ss[^][str().*\12;:^]ss;ss(.)(.*\1)s\2s;t' sizinkini fark etmeden önce yazdım ve çok benzer olduğu ortaya çıktı
izabera

@Dennis sabit; ortaya çıktı: [karakter sınıfını denemeye ve ayrıştırmaya neden olduktan sonra
Geoff Reedy

@izabera nice,: komutun gerçekte bir etikete ihtiyacı olmadığından ve t'nin etiketsiz anlamını değiştirdiğinden oldukça şaşırdım
Geoff Reedy

evet bu bir gnuism
izabera

2

Java 8 lambda, 152 142 140 karakter

Oldukça kısa:

s->s.chars().mapToObj(i->(char)i).filter(c->"COSTab\"\\cefh(i)j+l-mn.oprstuv>".contains(""+c)).collect(java.util.stream.Collectors.toSet())

Ya da buraya bağlanmamış:

public class Q89400 {

    static Set<Character> inAndQuine(String in) {
        return in.chars()
                .mapToObj(i->(char)i)
                .filter(c->"COSTab\"\\cefh(i)j+l-mn.oprstuv>".contains(""+c))
                .collect(java.util.stream.Collectors.toSet());

    }
}

Elbette, ağzı çözülmüş olan çözüm yanlıştır, çünkü küme parantezleriyle ve bazı karakterlerle uyuşmaz, sadece onların eksiksiz olması adınadır.

İşlev girişi a olarak alır Stringve java.util.Set<Character>hem giriş hem de kaynakta bulunan karakterleri içeren bir değer döndürür .

Güncellemeler

Çözümün işe yaramadığı ortaya çıktı. String#containsBir regex eşleşmesi için testler yaptım ama bu tam anlamıyla bir eşleşme. Gibi karakterleri alıntılamak için bazı kaçan ekledim. ama bu gerekli değildi ama bunun yerine her şeyi mahvetti. Şimdi bu kaçış olmadan bazı karakterler kaydederiz ve şimdi aslında çalışıyor :)

Tek karakterli değişkenleri kullanmamı hatırlattığım için @NonlinearFruit'e teşekkürler.


inGibi tek bir harf olmak için yeniden adlandıra
NonlinearFruit

3
@NonlinearFruit haklısın: O nasıl unutabilirim ki ?!
Frozn

2

SQF , 71 69 64 bayt

İşlev olarak dosya biçimini kullanarak:

i="-_h ;""=()sSplitrng"splitString"";i-(i-(_this splitString""))

Ara "STRING" call NAME_OF_COMPILED_FUNCTION

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.