বন্ধ-বোনা শব্দ


22

ভূমিকা

পাজলিং এসই-র র‌্যান্ড আল’’র পোস্ট অনুসারে , একটি নিকট- বুননযুক্ত শব্দটি এমন কোনও শব্দ যা অক্ষরে টানা তিনটি বর্ণ (যে কোনও ক্রমে) ধারণ করে (

মত শব্দ শিক্ষা , সাইরেন এবং সরাই সব মত শব্দ যেহেতু বন্ধ নিট শব্দ বলে মনে করা হয় লার্নিং , মোটর গাড়ির একধরনের জোরালো ইলেকট্রিক হর্ন এবং সঞ্চালন না বন্ধ নিট শব্দ হয়।

চ্যালেঞ্জ

চ্যালেঞ্জটি হ'ল একটি গিগাবাইট শব্দটিকে ইনপুট হিসাবে গ্রহণের যোগ্য প্রোগ্রাম-গল্ফকে (সমস্ত অনুগ্রহ এবং উদ্দেশ্যগুলির জন্য লোয়ার কেস ধরে নেওয়া) এবং আউটপুট ফেরত দেওয়া (যদি পাওয়া যায়) সমস্ত ধারাবাহিক লেটার সেটগুলি (নিম্ন ক্ষেত্রেও) তালিকাভুক্ত করে তবে এটি একটি নিকট-বোনা শব্দ, এবং খালি আউটপুট এটি যদি বন্ধ-বোনা শব্দ না হয়।

উদাহরণ

Input: education
Output: cde

Input: foghorn
Output: fgh

Input: cabaret
Output: abc

Input: hijacking
Output: ghi, hij, ijk

Input: pneumonia
Output: mno, nop

Input: klaxon
Output: <<no output>>

Input: perform
Output: <<no output>>

Input: learning
Output: <<no output>>

বিধি

  1. ইনপুটটি একটি একক নিম্ন-কেস শব্দ হিসাবে ধরে নেওয়া উচিত এবং আউটপুট অবশ্যই নিম্ন-কেস হওয়া উচিত, আপনার কোডিং ভাষার পছন্দ অনুসারে আউটপুটটির প্রকৃতি পরিবর্তিত হবে। অনুগ্রহ করে আউটপুট এমন একটি ফর্ম নির্বাচন করুন যা চ্যালেঞ্জের প্রকৃতির সাথে উপযুক্ত হবে, এটি STDOUT, ফাইল আউটপুট, অ্যারে ইত্যাদি হোক best
  2. যেহেতু এটি কোড-গল্ফ, এটি স্বল্পতম সংখ্যক বাইটের স্পষ্ট বিজয়ী হওয়ার ঘটনা হবে।
  3. কোন নির্বোধ ফাঁকা
  4. আমি উত্তরগুলি বর্ণানুক্রমিক ক্রমে ক্রমাগত অক্ষরগুলি গ্রহণ করব না ... সুতরাং উদাহরণস্বরূপ cabএকটি উপযুক্ত আউটপুট হিসাবে বিবেচিত হবে না cabaret
  5. বিশেষ দ্রষ্টব্য, "ট্রিপল্টস" বর্ণমালা অনুসারে অগত্যা হওয়া উচিত নয়, তবে ত্রিভুজের মধ্যে বর্ণগুলি অবশ্যই হওয়া উচিত ... সুতরাং "পারফরম্যান্স" শব্দের ক্ষেত্রে উদাহরণস্বরূপ, আউটপুট mno,nopগ্রহণ করা হবে, যেমন ইচ্ছে nop,mno। শব্দ "ছিনতাইয়ের" ক্ষেত্রে, ছয় উপায়ে যে Triplets হয় ghi, hijএবং ijkএকটি তালিকা সাজানো যেতে পারে, এবং সমস্ত ছয় একাধিক বিন্যাসন আউটপুট গ্রহণযোগ্য।

এটি ছাড়াও, আপনার চিহ্নগুলিতে, গল্ফ সেট করুন!


আউটপুট কি কলামে পরপর তিনটি অক্ষরের প্রতিটি সেট সহ 2 ডি চর অ্যারে হতে পারে ?
লুইস মেন্ডো

@ লুইসমেন্দো আপনি কি আমাকে একটি উদাহরণ দিতে পারেন যাতে আমি এটি কল্পনা করতে পারি?
ওয়েলওয়েস্ট

চূড়ান্ত ছাড়াই এবং !অন্য একটি শব্দ দিয়ে আমার কোড ব্যবহার করে দেখুন , যেমনটি বর্তমান ফলাফলটি একই ফল দেয় :-)
লুইস মেন্ডো

@ লুইস মেন্ডো এমএটিএল কলামটি বড় বা কিছু?
মালটিসেন

1
টিউপসগুলির একটি অ্যারের বিন্যাসে একটি আউটপুট ঠিক আছে, অর্থাত্ আউটপুট pneumoniaকি হতে পারে [('m','n','o'),('n','o','p')])?
আর কাপ,

উত্তর:


8

05 এ বি 1 ই , 7 6 5 বাইট

কোড:

3ãAŒÃ

ব্যাখ্যা:

3ã      # Cartesian product × 3 with input
  AŒ    # All substrings of the alphabet
    Ã   # Setwise intersection

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


এটি কেবল নিখুঁত প্রতিভা ... আমাকে এমন একটি চ্যালেঞ্জ তৈরি করার চেষ্টা করতে হবে যা এই ভাষাকে সীমাতে ঠেলে দেয় ...;)
ওয়াল ওয়েস্ট ওয়েস্ট

10

পাইথন 3.5, 68 বাইট

w=input()
a=0
while 1:s='%c'*3%(a,a+1,a+2);a+=1;{*s}-{*w}or print(s)

অক্ষরের মান খুব বড় হয়ে গেলে আউটপুট স্ট্রিংগুলি মুদ্রণ করে এবং ত্রুটির সাথে সমাপ্ত হয়।

টানা তিনটি স্ট্রিং উত্পন্ন করে এবং ইনপুট শব্দের একটি উপসেট যা মুদ্রণ করে।


8

পাইথ - 11 10 8 7 বাইট

সুপার ব্রুট ফোর্স পদ্ধতি।

@^z3.:G

টেস্ট স্যুট

@            Setwise intersection, finds common strings between the two lists
 ^           Cartesian product
  z          Input
  3          Of length 3
 .:          Substrings. Without second input finds all substrings which is ok
  G          Lowercase aphabet

7

জেলি , 7 বাইট

ØaẆfṗ3$

এটি একটি monadic লিঙ্ক। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

ØaẆfṗ3$  Monadic link. Argument: s (string)

Øa       Yield the lowercase alphabet, i.e., a := "abcdefghijklmnopqrstuvwxyz".
  Ẇ      Window; yields all substrings of a.
      $  Combine the two links to the left into a monadic chain.
    ṗ3   Take the third Cartesian power of s, yielding all combinations of three
         characters that can be formed from the letters in s.
   f     Filter; keep only those substrings of a that appear in the Cart. power.

7

জাভাস্ক্রিপ্ট (ES6), 95 90 বাইট

f=
s=>[...s].map(c=>a[parseInt(c,36)]=c,a=[])&&a.map((c,i)=>c+a[i+1]+a[i+2]).filter(c=>!c[3])
;
<input oninput="o.textContent=f(this.value).join`, `"><div id=o>

অনুপস্থিত মানগুলি কনকনেটেট হিসাবে undefined, সুতরাং ফলস্বরূপ স্ট্রিংয়ে 3 টিরও বেশি অক্ষর থাকে। আমি !c[3]5 বাইট সংরক্ষণের জন্য @ETH প্রডাকশন থেকে কৌশলটি ধার নিয়েছি।


2
কাকতালীয়ভাবে যথেষ্ট undefinedএকটি ঘনিষ্ঠ শব্দ;)
ওয়াল ওয়েস্ট

এর parseInt(c,36)বদলে কেন c.charCodeAt()?
তিতাস

টাইটাস আমি অনুমান করি এটি কোনও তাত্পর্যপূর্ণ নয়, আমি কেবল parseIntকোড গল্ফ ব্যবহার করতে অভ্যস্ত ।
নিল


4

পিএইচপি, 100 বাইট

for($a="abc",$i=98;$i<123;$a=substr($a,1).chr(++$i))if(strstr(count_chars($argv[1],3),$a))echo"$a,";

কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়; একটি পিছনে কমা মুদ্রণ। দিয়ে চালানো -r


1
for($s=join(range(Z,z));$a=substr($s,++$i,3);)তৈরির একটি ছোট উপায় way এটি স্বতঃস্ফূর্তভাবে কয়েকটি বিরামচিহ্ন এবং আরও কয়েকটি 2-চরিত্রের সিরিজ পরীক্ষা করে তবে ইনপুটটি কেবলমাত্র ছোট অক্ষরের অক্ষর এবং এটির জন্য এটি 3 টি অক্ষর সন্ধান করতে পারে।
ব্যবহারকারী59178

for($a="AB ", $ i এর = 98; $ i এর <123;) strstr (count_chars ($ argv হয় [1], 3), $ একটি = substr ($ একটি, 1) .chr (++ $ ঝ)) ?: মুদ্রণ "$ এ,"; 2 2 বাইট সংরক্ষণ করে Very খুব সুন্দর উপায়, আমি পিএইচপি-তে অন্যান্য উপায়ে চেষ্টা করেছি কিন্তু আপনার কোডের বাইটগুলিতে পৌঁছতে পারছি না I'm আমি নিশ্চিত নই যে কমা পরে আপনার কোনও জায়গার দরকার আছে
জার্গ হালসারম্যান

4

সি, 175 174 বাইট

main(_,a,m,n)char**a;{char*s=a[1],*t=s;while(*++s)while(s>t&&(n=s[-1])>=*s){m=(*s^n)?*s:0;*s=n;*--s=m;!*t&&++t;}for(;t[1]&t[2];++t)*t==t[1]-1&&*t==t[2]-2&&printf("%.3s ",t);}

ইন্ডেন্টযুক্ত:

main(_,a,m,n)char**a;
{
  char*s=a[1],*t=s;
  while(*++s)
    while(s>t&&(n=s[-1])>=*s){
      m=(*s^n)?*s:0;
      *s=n;
      *--s=m;
      !*t&&++t;
    }
  for(;t[1]&t[2];++t)
    *t==t[1]-1&&*t==t[2]-2&&printf("%.3s ",t);
}

বাছাই করার সময় এটি 0 টির সাথে সদৃশ মানগুলি প্রতিস্থাপন করে, এই 0 টি শব্দের শুরুতে বাছাই হয়। পরপর মূল্যবোধগুলির সন্ধান করা তখন তুচ্ছ।


1
সাইটে স্বাগতম!
ডিজেএমসিহেম

1
হ্যাঁ, পিপিসিজিতে আপনাকে স্বাগতম! আপনার উত্তরে দুর্দান্ত কাজ, গ গল্ফ করার পক্ষে সহজতম কোনওটি নয়!
ওয়েলওয়েস্ট

3

এমএটিএল , 13 বাইট

2Y23YCtjmAZ)!

এটি অনলাইন চেষ্টা করুন!

2Y2    % Push string of lowercase alphabet
3YC    % 2D char array with sliding blocks of size 3, each on a column
t      % Duplicate
j      % Take input
m      % Member function: true for elements of the 2D array that are in the input
A      % All: true for columns that consist of all true values
Z)     % Use as logical index into the columns of the 2D char array
!      % Transpose. Implicitly display

3

হাস্কেল, 48 বাইট

f w=filter(all(`elem`w))[take 3[c..]|c<-['a'..]]

পরপর তিনটি অক্ষরের সমস্ত ট্রিপল উত্পন্ন করে, ইনপুটটিতে কেবল অক্ষর ব্যবহার করে এমনগুলি গ্রহণ করে।


53 বাইট:

f w=filter(all(`elem`w))[[pred$pred c..c]|c<-['c'..]]

তালিকায় পরবর্তী ['c'..]থেকে সমস্ত ইউনিকোড অক্ষর রয়েছে 'c'। তালিকার বোধগম্যতা [[pred$pred c..c]|c<-['c'..]]এগুলি পর থেকে পরপর 3 টি অক্ষরের সমস্ত স্ট্রিংয়ে পরিণত করে "abc"। সর্বোচ্চ ইউনিকোড চরিত্রের উত্তরসূরি গ্রহণ করার সময় ত্রুটি এড়াতে আমরা [pred$pred c..c]ফরোয়ার্ডের পরিবর্তে পিছনের দিকে এগিয়ে [c..succ$succ c]যাই।

এই ট্রিপলগুলি কেবলমাত্র ইনপুটটিতে অক্ষর ব্যবহার করে এমনদের জন্য ফিল্টার করা হয়।


3

পার্ল, 36 বাইট

এর জন্য +1 অন্তর্ভুক্ত -n

এসটিডিনে ইনপুট দিন:

perl -nE 'join("",a..z)=~/[$_]{3}(?{say$&})^/' <<< "hijacking"

শুধু কোড:

join("",a..z)=~/[$_]{3}(?{say$&})^/

3

টি-এসকিউএল, 153 বাইট

সর্বশেষ টিএসকিউএল উত্তর থেকে এটি দীর্ঘ সময় নিয়ে, ওয়ালিওয়েস্টের মন্তব্যে প্রতিক্রিয়া জানাতে হয়েছিল। উত্তরটি আংশিকভাবে ব্রায়ান জেয়ের উত্তরে অনুপ্রাণিত হয়েছিল

Golfed:

USE MASTER
DECLARE @ varchar(max)='hijacking'

;WITH C as(SELECT distinct ascii(substring(@,number,1))z FROM spt_values)SELECT CHAR(C.z)+CHAR(D.z)+CHAR(E.z)FROM C,C D,C E WHERE c.z+1=d.z and d.z=e.z-1

বেহালা

Ungolfed:

USE MASTER -- can be left out if the master database is already being used
DECLARE @ varchar(max)='hijacking'

;WITH C as
(
  SELECT distinct ascii(substring(@,number,1))z
  FROM spt_values
)
SELECT CHAR(C.z)+CHAR(D.z)+CHAR(E.z)
FROM C,C D,C E
WHERE c.z+1=d.z and d.z=e.z-1

1
এতো চালাক! এমনকি সেই টেবিলটি সম্পর্কেও জানতেন না। ভাল কথা 2048 বর্ণের বেশি দীর্ঘ শব্দ নেই!
ব্রায়ান জে

2

হাস্কেল, 63 60 52 বাইট

f w=[x|x<-take 3<$>scanr(:)"_"['a'..],all(`elem`w)x]

ব্যবহারের উদাহরণ: f "hijacking"-> ["ghi","hij","ijk"]

scanr(:)"_"['a'..]সমস্ত ইউনিকোড অক্ষর দিয়ে শুরু করে লেজের তালিকাগুলি দিয়ে একটি তালিকা তৈরি করে 'a'এবং এটি একটি '_', অর্থাৎ দিয়ে শেষ করতে দেয় ["abcde...\1114111_", "bcde...\1114111_", "cde...\1114111_", ..., "\1114109\1114110\1114111_", "\1114110\1114111_", "\1114111_", "_"]। তারপরে আমরা প্রতিটি স্ট্রিংয়ের তিনটি অক্ষর নিয়ে বেঁধে রাখি xxইনপুট প্যারামিটারে এর প্রতিটি অক্ষর যেখানে থাকে সেখানে রাখুন w

সম্পাদনা করুন: @ xnor 3 7 বাইট সংরক্ষণ করেছে । ধন্যবাদ!


আমি a:b:c:_কী @ @ পেটারন দিয়ে তালিকার প্রথম তিনটি উপাদান ক্যাপচার করতে পারি তা কি কেউ জানেন ?
নিমি

আমি @-Pattern সম্পর্কে জানি না, তবে আপনি 'z'উপরের সীমাটি সরাতে পারেন এবং কেবল সমস্ত অক্ষর চেষ্টা করে দেখতে পারেন।
xnor

প্রথম 3 টি উপাদানকে ক্যাপচার করা সত্যিই বিরক্তিকর। আমি দেখতে পাচ্ছি takef w=[x|x<-init$take 3<$>scanr(:)""['a'..],all(`elem`w)x]
সেরাটি

@ এক্সনর: দুর্দান্ত আমরা scanr"দিয়ে শুরু করতে পারি ।" পরিবর্তে ""এবং বাদ init$
নিমি

2

টি-এসকিউএল (এসকিউএল সার্ভার 2014), 217 বাইট

Golfed

declare @ table(a char)declare @i int=1while @i<=len(@a)begin insert into @ values(SUBSTRING(@a,@i,1))set @i+=1 end select distinct t.a+u.a+v.a from @ t,@ u,@ v where ASCII(t.a)+1=ASCII(u.a)and ASCII(u.a)+1=ASCII(v.a)

ব্যবহার

প্রথমে ভেরিয়েবলটি @a কে কোনও সাজানোর চর হিসাবে ঘোষণা করুন এবং এর মতো ইনপুট বরাদ্দ করুন

declare @a varchar(max) = 'pneumoultramicroscopicsilicovolcanoconiosis'

আমি আমার কোডের অংশ হিসাবে ডিক্লেয়ারটিকে গণনা করি নি, তবে ইনপুটটির জন্য আমি বর্গ স্ট্যান্ডার্ড পাইনি, তাই আমি আমার গণনা পরিবর্তন করতে ইচ্ছুক

প্রতি ট্রিপলের জন্য আউটপুট হয় এক সারি, বা শব্দটি বুনন না থাকলে কোনও সারি হবে না

Ungolfed

declare @temp table ( letter char(1) ) -- table to hold each letter of the word

declare @i int = 1

while @i <= len(@input) -- split each letter, and each row in @temp will have one letter
begin
    insert into @temp values (SUBSTRING(@input, @i, 1))
    set @i = @i + 1
end

-- join the letters table to itself to get three letter triples, where the three are in adjacent increasing order
-- use distinct because there might be duplicates in the word
select distinct t1.letter + t2.letter + t3.letter
from @temp t1
cross apply @temp t2
cross apply @temp t3
where ASCII(t1.letter) + 1 = ASCII(t2.letter)
and ASCII(t2.letter) + 1 = ASCII(t3.letter)

ঘোষণাটি আমরা কোডটির সাথে কাজ করছি তা দেখে গণনা করা হবে না যে এই দৃষ্টান্তে প্রয়োজনীয় কার্যকারিতা পোস্ট-ডিক্লেয়ারেশন কার্যকর করতে হবে। দুর্দান্ত কাজ, যখন থেকে আমি একটি চ্যালেঞ্জের জন্য একটি এসকিউএল সমাধান দেখেছি অনেকক্ষণ হয়েছে। মহান কাজ!
ওয়েলওয়েস্ট

আমি আপনার স্ক্রিপ্টটি 185 টি অক্ষরে গল্ফ করেছি , এখানে বর্ণা .্য সংস্করণ রয়েছে। আপনি চেক আউট করতে চান হতে পারে আমার উত্তর পাশাপাশি
t-clausen.dk

2

আর, 220 বাইট

আমার সমাধানটি বেশ সোজা। এটি সম্ভাব্য তিনটি অক্ষরের সংমিশ্রণে লুপ করে, তিনটি পরপর তিনটি অক্ষরের বিপরীতে প্রবেশ করা স্ট্রিংয়ের অক্ষরগুলি লুপ করে এবং একটি স্ট্রিংয়ে যুক্ত করে to স্ট্রিংটি তখনই মুদ্রিত হয় যখন তিনটি অক্ষর পাওয়া যায় (সি == 4)।

f<-function(w){if(nchar(w)>2){for(i in 1:24){
c<-1
t<-""
for(k in 1:3){for(j in 1:nchar(w)){if(substr(w,j,j)==intToUtf8(95+k+i)&c<4){
t<-paste(t,substr(w,j,j),sep="")
c<-c+1
break
}}}
if(c==4){print(paste(t))}}}}

ইনপুট আউটপুট

> f("education")
> [1] "cde"
> > f("foghorn")
> [1] "fgh"
> > f("cabaret")
> [1] "abc"
> > f("hijacking")
> [1] "ghi"
> [1] "hij"
> [1] "ijk"
> > f("pneumonia")
> [1] "mno"
> [1] "nop"
> > f("klaxon")
> > f("perform")
> > f("learning")
> > 

2

পাইথন 3.5, 114 111 88 80 79 বাইট:

lambda X,W=[*map(chr,range(65,91))]:[i*({*X}>={*i})for i in zip(W,W[1:],W[2:])]

একটি বেনামে ল্যাম্বদা ফাংশন। বড় হাতের স্ট্রিং হিসাবে ইনপুট নেয় এবং ইনপুটে প্রদর্শিত ধারাবাহিক অক্ষরের সমস্ত সেটকে উপস্থাপন করে তিনটি বড় হাতের অক্ষর দিয়ে পূর্ণ করে টিপলগুলির একটি অ্যারের আউটপুট দেয় 3। উদাহরণ স্বরূপ,

[(), (), (), (), (), (), ('G', 'H', 'I'), ('H', 'I', 'J'), ('I', 'J', 'K'), (), (), (), (), (), (), (), (), (), (), (), (), (), ()]

ইনপুট জন্য আউটপুট হবে HIJACKING। এই আউটপুট ফর্ম্যাটটি ওপি দ্বারা ঠিক আছে কিনা তা নিশ্চিত হয়ে গেছে । সুতরাং একমাত্র বড় হাতের ইনপুট ফর্ম্যাট আছে। যাইহোক, যদি আপনি ইনপুট করতে চান শুধুমাত্র ছোট হাতের অক্ষর ব্যবহার, সহজভাবে প্রতিস্থাপন range(65,91)সঙ্গে range(97,123), আরও একটি বাইট যোগ করা হয়েছে।

সমস্ত পরীক্ষার মামলা দিয়ে Repl.it!

ব্যাখ্যা:

মূলত এখানে যা ঘটছে তা হ'ল:

  1. একটি তালিকা Wতৈরি করে তৈরি করা হয় W=[*map(chr,range(65,91))], এতে ইংরেজী বর্ণমালার সমস্ত বড় হাতের অক্ষর থাকে। এই কারণে, একটি বড় হাতের ইনপুট সর্বদা প্রয়োজন।

  2. প্রতিটি tuple জন্য i, একটি তালিকা, যা আমরা কল হবে U, ধারণকারী সব তিনটি পরপর চিঠি tuples, অর্থাত্:

    U=[('A','B','C'),('B','C','D'),('C','D','E'),...]
    

    দ্বারা নির্মিত zip(W,W[1:],W[2:]), প্রতিটি iসম্পূর্ণরূপে যতদিন সেট সংস্করণে সব উপাদান আউটপুট তালিকায় যোগ করা হয় i( {*i}) ইনপুট সেট সংস্করণে হয় X( {*X}), অর্থাৎ {*X}>={*i}, অর্থাত্ Xএকটি হল সুপারসেটও এর i। অন্যথায়, i( ()) এর খালি সংস্করণটি তালিকায় যুক্ত হবে।

  3. সমস্ত টিপলগুলি ম্যাচগুলি সম্পূর্ণরূপে যুক্ত হয়ে গেলে, তালিকাটি চূড়ান্ত আউটপুট হিসাবে ফিরে আসে।


2

স্কালা, 59 বাইট

(s:Set[Char])=>'a'to'z'sliding 3 filter{_.toSet subsetOf s}

Ungolfed:

(s:Set[Char]) => ('a' to 'z').sliding(3).filter{threeChars => threeChars.toSet.subsetOf(s)}

ব্যাখ্যা:

(s:Set[Char])=>             //define a function with a Set of Chars called s as an argument
'a' to 'z'                  //create a Range of characters 'a' to 'z'
sliding 3                   //create an Iterator(Seq(a, b, c), Seq(b, c, d), Seq(c, d, e), ... , Seq(x, y, z))
filter{_.toSet subSetOf s}  //keep only the triplets which are a subset of s

2

আসলে, 13 বাইট

গল্ফিং পরামর্শ স্বাগত জানাই। এটি অনলাইন চেষ্টা করুন!

S3@╧`εj`M3úV∩

Ungolfing

                Implicit input string s.
S               sorted(s).
 3@╧            Push all length-3 combinations of s.
    `εj`M       Join all of those combinations into single strings.
         3úV    Push all slices of the lowercase alphabet of length 1 <= n <= b
            ∩   Push the intersection of the combinations and slices.
                Implicit return.

1

জাভা 7, 230 বাইট

String c(char[]q){java.util.Arrays.sort(q);char a[]=new String(q).replaceAll("(.)\\1","$1").toCharArray(),c=97,i=2;String r="",z="",s;for(;c<'z';z+=c++);while(i<a.length)if(z.contains(s=""+a[i-2]+a[i-1]+a[i++]))r+=s+" ";return r;}

এটি সম্ভবত গল্ফ করা যেতে পারে, তবে চ্যালেঞ্জটি আমি জাভাতে মূলত যা ভাবা হয়েছিল তার চেয়ে অনেক বেশি কঠিন ছিল ..

অবহেলিত ও পরীক্ষার কেস:

এখানে চেষ্টা করুন।

class M{
  static String c(char[] q){
    java.util.Arrays.sort(q);
    char a[] = new String(q).replaceAll("(.)\\1", "$1").toCharArray(),
         c = 97,
         i = 2;
    String r = "",
           z = "",
           s;
    for(; c < 'z'; z += c++);
    while(i < a.length){
      if(z.contains(s = "" + a[i-2] + a[i-1] + a[i++])){
        r += s+" ";
      }
    }
    return r;
  }

  public static void main(String[] a){
    System.out.println(c("education".toCharArray()));
    System.out.println(c("foghorn".toCharArray()));
    System.out.println(c("cabaret".toCharArray()));
    System.out.println(c("hijacking".toCharArray()));
    System.out.println(c("pneumonia".toCharArray()));
    System.out.println(c("klaxon".toCharArray()));
    System.out.println(c("perform".toCharArray()));
    System.out.println(c("learning".toCharArray()));
    System.out.println(c("dblacghmeifjk".toCharArray()));
  }
}

আউটপুট:

cde 
fgh 
abc 
ghi hij ijk 
mno nop 



abc bcd cde def efg fgh ghi hij ijk jkl klm 

শুধু জাভা কেন জিজ্ঞাসা করতে হবে? এটি ভাষার সবচেয়ে গল্ফযোগ্য নয় ...? অবশ্যই চেষ্টা করার জন্য +1 ...
ওয়েলওয়েস্ট

1
@ ওয়েলিওয়েস্ট ওয়েল, আমি দৈনন্দিন জীবনে একটি জাভা বিকাশকারী। এবং আমি জানি যে জাভা কীভাবে হয় তা নিয়ে আমি কখনই কোনও চ্যালেঞ্জ জিততে পারব না, তবে জাভা ইমোতে কোডগল্ফ করা এখনও মজাদার। :)
কেভিন ক্রুইজসেন

1
অসুস্থ অনুমান আপনার অংশগ্রহণের জন্য অদূর ভবিষ্যতে কয়েকটি সৃজনশীল কোড চ্যালেঞ্জ নিয়ে আসতে হবে :) তবুও ভাল কাজ!
ওয়েলওয়েস্ট

1

পাওয়ারশেল ভি 2 +, 93 বাইট

param($n)97..120|%{-join[char[]]($_,++$_,++$_)}|?{(-join([char[]]$n|sort|select -u))-match$_}

প্রয়োজনের তুলনায় অনেক বেশি দীর্ঘ মনে হয়, তবে আমি আর এটি গল্ফ করতে পারি না।

ইনপুট নেয় $n। থেকে loops 97জন্য 120, সংলগ্ন তিনটি অক্ষর স্ট্রিং নির্মাণের - যে আপ হয়, |?আমরা করব abc, bcd, cdeপাইপলাইন প্রকল্পের ইত্যাদি। তারপরে একটি Where-Object(দ্য |?) মাধ্যমে খাওয়ানো হয় কেবল সেই আইটেমগুলিকে টানতে যেখানে ধারাটি সত্য। এখানে, ধারাটি 1) ইনপুট স্ট্রিং $n, একটি- charঅ্যারে, sortএড এবং select -uনিক'ড হিসাবে কাস্ট করা হয়েছে , তারপরে তিনটি অক্ষরের স্ট্রিংগুলির (যেমন, রেজেক্স ম্যাচিং) বিপরীতে -joinএড আবার স্ট্রিংয়ে -matchএড করুন 2 যদি এটি কোনও মিল হয় তবে তিন অক্ষরের স্ট্রিংটি শব্দটিতে রয়েছে এবং তাই এটির মাধ্যমে ফিল্টার হয় |?। ফলাফলগুলি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।

উদাহরণ

(দ্রষ্টব্য যে এখানে আউটপুটটি পৃথক পৃথক, যেহেতু আমরা আউটপুটকে একত্রিত করে স্ট্রাইটিং করছি))

PS C:\Tools\Scripts\golfing> 'education','foghorn','cabaret','hijacking','pneumonia','klaxon','perform','learning'|%{"$_ -> "+(.\close-knit-words.ps1 $_)}
education -> cde
foghorn -> fgh
cabaret -> abc
hijacking -> ghi hij ijk
pneumonia -> mno nop
klaxon -> 
perform -> 
learning -> 

দুর্দান্ত ব্যাখ্যা। সম্ভব হলে দু'টি ভোট দিয়ে দেব
ওয়েলওয়েস্ট

1

রেটিনা, 106 56 বাইট

D`.
O`.
^
abc¶
{`^(.*)¶.*\1.*
$0¶$1
}T`_l`l;`^.*
2`.*¶?

নকল, সাজান। অ্যাড abc। সাবস্ট্রিংটি পাওয়া গেছে কিনা তা সন্ধান করুন এবং যদি থাকে তবে সংযোজন করুন। পরবর্তী সাবস্ট্রিংয়ে অনুবাদ করুন। পদ্ধতি পুনরাবৃত্তি করুন। তারপরে প্রথম দুটি লাইন সরান।

এটি অনলাইনে চেষ্টা করুন


নিষ্পাপ সমাধান:

D`.
O`.
!&`abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz

নকল করুন, বাছাই করুন, তারপরে 3 টি অনুক্রমিক বর্ণের ওভারল্যাপিং ম্যাচগুলি।

এটি অনলাইনে চেষ্টা করুন


নিষ্প্রভ সমাধানটি বেশ সোজা মনে হচ্ছে ... যদিও আমি আপনার গল্ফযুক্ত সমাধানটি আরও ভাল পছন্দ করি ... ভাল!
ওয়েলওয়েস্ট

1

জাভাস্ক্রিপ্ট (ফায়ারফক্স 48), 93 বাইট

x=>[for(c of a=[...new Set(x,i=0)].sort())if(parseInt(d=c+a[++i]+a[i+1],36)%1333==38&!d[3])d]

এটি একটি 96-বাইট ES6 সংস্করণে নিজেকে ndsণ দেয় :

x=>[...new Set(x)].sort().map((c,i,a)=>c+a[i+1]+a[i+2]).filter(x=>!x[3]&parseInt(x,36)%1333==38)

কিভাবে এটা কাজ করে

ফাংশনটির প্রথম প্রধান অংশটি হ'ল:

[...new Set(x)].sort()

new Set(string)একটি সেট অবজেক্ট তৈরি করে যা স্ট্রিংয়ের প্রতিটি অনন্য অক্ষরকে অন্তর্ভুক্ত করে। উদাহরণস্বরূপ, new Set("foghorn")ফিরে আসবে Set ["f", "o", "g", "h", "r", "n"]। আমরা এটিকে একটি অ্যারেতে রূপান্তর করতে পারি [... ], তারপরে এটি বিল্ট-ইন দিয়ে বাছাই করতে পারি .sort()। এটি পরিণত "foghorn"হয় ["f", "g", "h", "n", "o", "r"]

পরবর্তী পদক্ষেপটি হ'ল:

.map((c,i,a)=>c+a[i+1]+a[i+2])

এটি cক্রেমের প্রত্যেকটি হ্যারাক্টরকে aদুটি আইটেমের পরে এটির সাথে মিলিত করে maps উদাহরণস্বরূপ ["f", "g", "h", "n", "o", "r"] => ["fgh", "ghn", "hno", "nor", "orundefined", "rundefinedundefined"],। (দ্যundefined আপনি যখন অ্যারের অস্তিত্বহীন সদস্য অ্যাক্সেস করার চেষ্টা করবেন তখন পপ আপ করুন।

চূড়ান্ত পদক্ষেপ ফিল্টারিং হয়:

.filter(x=>!c[3]&parseInt(x,36)%1333==38)

প্রথমত, !c[3]&হ'ল যে কোনও স্ট্রিং রয়েছে তা বাতিল করে দেওয়া undefined। এটি প্রয়োজনীয় কারণ কোনও বাগের ফলে নিম্নলিখিত অ্যালগরিদমকে গণনা করা হয় যেমন gmundefinedটানা তিনটি রূপান্তর হিসাবে।

সমস্ত ত্রি-পরপর-চর স্ট্রিংগুলি যখন বেস -৩ numbers সংখ্যা হিসাবে ব্যাখ্যা করা হয়, তখন ৩৩ টি মডেলো ১৩৩৩ হয় following আমি নিম্নলিখিত গণনার দ্বারা এটি বের করেছি:

  • 012 (বেস 36) = 38
  • 123 (বেস 36) = 1371
  • 1371 - 38 = 1333
  • 1371 মোড 1333 ≡ 38 মড 1333 ≡ 38

অতএব, বেস -36-এ যদি তিন-চর স্ট্রিং 38 মডি 1333 হয় তবে তিনটি অক্ষর বর্ণমালায় পরপর থাকে।

পরীক্ষার স্নিপেট


এটি gemএবং যেমন শব্দের জন্য ব্যর্থ mage
নিল

সুতরাং আপনি বলছেন যে হেক্সাট্রিজেজিমাল (বেস 36) থেকে ফিরে যখন রূপান্তরিত হয় তখন টানা সমস্ত অক্ষর তিনটি হয় যখন 13৩৩ এর বিপরীতে পরিণত হয়েছিল ... এটি দুর্দান্ত!
ওয়েলওয়েস্ট

ছয় বাইটের দামে নিল ফিক্সড
ETH প্রোডাকশনস

আমি আপনার !c[3]কৌশলটি বরাদ্দ দিয়েছি যা আমার ES6 উত্তরটি আপনার পূর্ববর্তী ES6 উত্তরের দৈর্ঘ্যের সাথে নামিয়ে দিয়েছে, তাই এখন আমি আপনার ফায়ারফক্স 30+ উত্তরকেও ছাড়িয়ে যাচ্ছি। এর জন্যে দুঃখিত.
নিল

@ নীল আমার আপত্তি নেই :)
ইটিএইচ প্রোডাকশনস

1

র‌্যাকেট 237 বাইট

(define(f s)(let((lr(λ(l i)(list-ref l i)))(l(sort(map char->integer(string->list s))<)))(for((i(-(length l)2)))
(when(=(-(lr l(+ i 2))(lr l(+ i 1)))1(-(lr l(+ i 1))(lr l i)))(for((j 3))(display(string(integer->char(lr l(+ i j))))))))))

পরীক্ষামূলক:

(f "education")

আউটপুট:

cde

বিস্তারিত সংস্করণ:

(define(f2 s)
  (let ((lr (λ(l i)(list-ref l i)))
        (l (sort (map char->integer (string->list s)) <)))
  (for ((i (-(length l)2)))
    (when (=  (- (lr l (+ i 2)) (lr l (+ i 1)))
              1
              (- (lr l (+ i 1)) (lr l i)))
      (for((j 3))
        (display (string(integer->char (lr l (+ i j))))))))))

1

রুবি , 50 বাইট

each_cons(3)বর্ণমালা থেকে 3 দৈর্ঘ্যের একটানা সাবলিস্টস প্রাপ্ত হয় ?a..?z, তারপরে e&s.chars==eসেটওয়্যার ছেদটি ব্যবহার করে লক্ষ্য স্ট্রিংয়ের সমস্ত অক্ষর রয়েছে কেবল তার জন্যই ব্যবহার করুন। তালিকার একটি তালিকা ফেরত দেয়।

->s{(?a..?z).each_cons(3).select{|e|e&s.chars==e}}

এটি অনলাইন চেষ্টা করুন!


1

[আর], 110 বাইট

 f=function(b){a=combn(sort(utf8ToInt(b)),3);apply(unique(t(a[,which(apply(diff(a),2,prod)==1)])),1,intToUtf8)}

আমি নিশ্চিত এটি এখনও গল্ফযোগ্য


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.