Найдовша неповторна підрядка


33

Даний рядок у якості вхідного знаходження знаходить найдовший суміжний підрядку, яка не має жодного символу двічі та більше. Якщо таких підрядків декілька, ви можете вивести будь-яку. Ви можете припустити, що вхід знаходиться в діапазоні ASCII для друку, якщо бажаєте.

Оцінка балів

Відповіді спочатку класифікуються за довжиною власної найдовшої неповторної підрядки, а потім за загальною довжиною. Нижчі бали будуть кращими для обох критеріїв. Залежно від мови, це, ймовірно, буде відчувати себе проблемою з обмеженням джерела.

Тривіальність

У деяких мовах домогтися оцінки 1, x (подовження) або 2, x (Brain-flak та інші тирінг-тарпіти) досить легко, проте є й інші мови, в яких мінімізація найдовшої неповторної підрядки є проблемою. Мені було дуже цікаво отримати бал 2 в Haskell, тому я закликаю вас шукати мови, де це завдання є цікавим.

Тестові справи

"Good morning, Green orb!" -> "ing, Gre"
"fffffffffff" -> "f"
"oiiiiioiiii" -> "io", "oi"
"1234567890"  -> "1234567890"
"11122324455" -> "324"

Підрахунок балів

Ви можете оцінювати свої програми, використовуючи наступний фрагмент:


Пропонований тестовий випадок: 11122324455Джонатан Аллан зрозумів, що моя перша редакція не впоралася з цим правильно.
Денніс

Додано тестовий випадок @Dennis. Мені цікаво, як це сталося.
Пшеничний майстер

2
Я генерував усі підрядки (вже відсортовані за довжиною), потім дедублював підрядки та зберігав ті, що залишилися. На жаль, це змінює порядок; 11122після 324, але дедублюється 12.
Денніс

Мені цікаво, де відповідь пробілу.
Чарівний восьминога Урна

Відповіді:


13

C, оцінка 2,  747   720  662 байт

L  [  1  <<  7  ]  ,  *  q  ,  *  r  ,  l  ,  d  ,  i  ,  c  ,  j  ,  s  ,  t  ,  k  =  1  <<  7  ;  h  (  )  {  q  =  s  +  i  +  j  ++  ;  *  q  %  k  &&  !  L  [  *  q  %  k  ]  ++  &&  h  (  ++  c  )  ;  }  g  (  )  {  q  =  s  +  i  ;  *  q  %  k  ?  z  (  k  )  ,  h  (  j  =  c  =  0  )  ,  c  >  d  &&  (  d  =  c  )  &&  (  l  =  i  )  ,  g  (  ++  i  )  :  0  ;  }  f  (  S  ,  T  )  {  s  =  S  ;  l  =  i  =  d  =  0  ;  g  (  t  =  T  )  ;  p  (  i  =  0  )  ;  }  p  (  )  {  q  =  s  +  l  +  i  ;  r  =  t  +  i  ;  i  ++  <  d  ?  p  (  *  r  =  *  q  )  :  (  *  r  =  0  )  ;  }  z  (  i  )  {  L  [  --  i  ]  =  0  ;  i  &&  z  (  i  )  ;  }

Працює принаймні на 32-бітному MinGW (з вимкненням оптимізації). Не використовується жодне ключове слово.

Мабуть, працює і на TIO з gcc та clang: Спробуйте в Інтернеті! (Дякую @Dennis!)

Телефонуйте за допомогою:

int main()
{
    char str[1024];

    f("Good morning, Green orb!", str);
    puts(str);

    f("fffffffffff", str);
    puts(str);

    f("oiiiiioiiii", str);
    puts(str);

    f("1234567890", str);
    puts(str);

    f("L  [  1  <<  7  ]  ,  *  q  ,  *  r  ,  l  ,  d  ,  i  ,  c  ,  j  ,  s  ,  t  ,  k  =  1  <<  7  ;  h  (  )  {  q  =  s  +  i  +  j  ++  ;  *  q  %  k  &&  !  L  [  *  q  %  k  ]  ++  &&  h  (  ++  c  )  ;  }  g  (  )  {  q  =  s  +  i  ;  *  q  %  k  ?  z  (  k  )  ,  h  (  j  =  c  =  0  )  ,  c  >  d  &&  (  d  =  c  )  &&  (  l  =  i  )  ,  g  (  ++  i  )  :  0  ;  }  f  (  S  ,  T  )  {  s  =  S  ;  l  =  i  =  d  =  0  ;  g  (  t  =  T  )  ;  p  (  i  =  0  )  ;  }  p  (  )  {  q  =  s  +  l  +  i  ;  r  =  t  +  i  ;  i  ++  <  d  ?  p  (  *  r  =  *  q  )  :  (  *  r  =  0  )  ;  }  z  (  i  )  {  L  [  --  i  ]  =  0  ;  i  &&  z  (  i  )  ;  }");
    puts(str);
}

Вихід:

Код з трохи читабельнішим форматуванням:

L[1<<7],
*q, *r, l, d, i, c, j, s, t, k=1<<7;

h()
{
    q = s+i+j++;
    *q%k && !L[*q%k]++ && h(++c);
}

g()
{
    q = s+i;
    *q%k ? z(k), h(j=c=0), c>d && (d=c) && (l=i), g(++i) : 0;
}

f(S, T)
{
    s = S;
    l = i = d = 0;
    g(t=T);
    p(i=0);
}

p()
{
    q = s+l+i;
    r = t+i;
    i++<d ? p(*r=*q) : (*r=0);
}

z(i)
{
    L[--i] = 0;
    i && z(i);
}

І це можна використовувати для створення належного інтервалу, щоб дістатися до форматування з оцінкою 2: Спробуйте в Інтернеті!


C, оцінка 3, 309 байт

i
,
j
,
l
,
c
,
d
;
f
(
\
c\
\
h\
\
a\
\
r
*
s
)
{
\
f\
\
o\
\
r
\
(
i
=
l
=
d
=
0
;
s
[
i
]
;
c
>
d
&&
(
d
=
c
)
&&
(
l
=
i
)
,
++
i
)
\
f\
\
o\
\
r
(
\
c\
\
h\
\
a\
\
r

L
[
\
1\
\
2\
\
8
\
]
=
{
j
=
c
=
0
}
;
s
[
i
+
j
]
&&
!
L
[
s
[
i
+
j
++
]
]
++
;
++
c
)
;
\
w\
\
r\
\
i\
\
t\
\
e
(
1
,
s
+
l
,
d
)
;
}

Спробуйте в Інтернеті!


10

Haskell , оцінка 2, 492 ... 307 224 212 209 207 байт

((yy:yyy))??ss|ss==yy  =  ""  |  yy==yy=yy:yyy??ss
ss??sss=ss
ss""=""

ss((ff:fff))  =  ff  :  ss  fff??ff
ff""=""

ff((xxx:xx))  =  ss((xxx:xx))##ff  xx
xx##xxx  |  ((((xx>>xx))<))  $  xxx>>xx=xxx|xx==xx=xx

Спробуйте в Інтернеті!

Golfed буквально сотні байт завдяки WW і Ørjan Йохансен !

Пояснення

Функція (??)приймає символ cі рядок sі повертає найдовший префікс s, який не містить c. Unolfolf та не оптимізований для оцінки:

c ?? (y:s)  
    | c==y = ""
    | True = y : c ?? s
c ?? s = s

Функція ssвикористовує (??)для пошуку найдовшого префікса унікальних символів даного рядка:

ss (x:r) = x : (x ?? ss r)
ss "" = ""

(##)це функція, яка займає дві струни і повертає довший. Порівняння довжини працює, повторюючи рядок так xсамо часто, як xдовге ( x>>y) і як yдовге ( y>>x), і перевіряючи, який із отриманих рядків є лексикографічно більшим.

x ## y
  | (x>>x) < (y>>x) = y
  | True = x

Нарешті, ffповторюється через вхідний рядок, генерує найдовший префікс з ss, рекурсивно визначає найдовшу неповторювану підрядку хвоста рядка і повертає довше з двох за допомогою (##):

ff "" = ""
ff (x:r) = ss(x:r) ## ff r

4
224 , головним чином шляхом вимивання проміжного списку.
Ørjan Johansen

2
Я поєднав цю відповідь з тією, яку я розмістив у чаті раніше, щоб отримати 216 .
Пшеничний майстер

3
209 шляхом переупорядкування речей.
Ørjan Johansen

3
З анонсом щедрості я поглянув ще раз і зрозумів, що @фокус насправді коштує 2 байти за те, щоб зробити ?два знаки: 207
Ørjan Johansen

5

Луа, оцінка 3, 274 байти

g='g'..'s'..'u'..'b'  _G  [  'l'..'o'..'a'..'d'  ](  g[g  ](  "s  =...f  o  r d = # s - 1 , 0 , - 1 d  o f  or r = 1 , # s - d d  o t = s :s  ub  (r  ,r  +d  )i  f n  ot t:  fi  nd  '(  .)  .*  %1  't  he  n p  ri  nt  (t  )r  et  ur  n en  d e  n  d e  nd  ","  ",""))(...)

Примітка. Потрібно Lua 5.2 або Lua 5.3

Використання:

$ lua lnrs.lua "Good morning, Green orb!"
ing, Gre
$ lua lnrs.lua "fffffffffff"
f
$ lua lnrs.lua "oiiiiioiiii"
oi
$ lua lnrs.lua "1234567890"
1234567890
$ lua lnrs.lua "11122324455"
324

Головна ідея: переплутати все з пробілами, вставити " " (два пробіли), щоб розділити довгі ідентифікатори

Невикористаний код:

g = "gsub"
_G["load"](
   g[g](      -- g[g] == string.gsub - a function for substitution of substrings
      "The source of actual program, but two-space sequences were inserted in some places", 
      "  ",   -- we are replacing all two-space substrings
      ""      -- with an empty string
   )
)(...)

Фактична програма (після видалення всіх пар пробілів):

s = ...
for d = #s - 1, 0, -1 do
   for r = 1, #s - d do
      t = s:sub(r, r+d)
      if not t:find"(.).*%1" then
         print(t)
         return
      end
   end
end

До речі, фрагмент JS для обчислення балу не вдається в моєму коді.


4

Сітківка 0,8.2 , 37 байт, оцінка 9

.
$&$'¶
(.)(?<=\1.+).*

O#$^`
$.&
1G`

Спробуйте в Інтернеті! Прямий переклад цієї відповіді на Retina 1 зберігає байт, використовуючи Nзамість O#. Однак якщо ви наївно гольфуєте на відповідь Retina 1 до 28 байт, її оцінка фактично підвищується до 10! Пояснення:

.
$&$'¶

Створити всі суфікси вхідних даних.

(.)(?<=\1.+).*

Для кожного суфікса візьміть префікс до першого дубльованого символу.

O#$^`
$.&

Сортуйте решту рядків у зворотному порядку за довжиною (тобто першою найдовшою).

1G`

Візьміть найдовше.


4

Желе , оцінка 2, 14 байт

Ẇµµff  Q  €  Ṫ

Дякуємо @JonathanAllan за оцінку -1, +7 байт та за те, що помітили помилку.

Спробуйте в Інтернеті!

Як це працює

Ẇµµff  Q  €  Ṫ  Main link. Argument: s (string)

Ẇ               Window; yield all substrings of s, sorted by length.
 µ              Begin a new chain. Argument: A (array of substrings)
  µ             Begin a new chain. Argument: A (array of substrings)
   f            Filter A by presence in itself. Does nothing.
       Q  €     Unique each; deduplicate all strings in A.
    f           Filter A by presence in the array of deduplicated substrings,
                keeping only substrings composed of unique characters.
             Ṫ  Tail; take the last (longest) kept substring.

4

Очистити , набрати 7 5, 276 байт

@[ss:s]=rr(pp[][ss:s])((@s))
@s=s
ee x[rr:xx]|e x rr=True=ee x xx
ee x xx=f
f=e'e'' '
e::!  Char  !  Char  ->Bool
e  _ _=  code  {

eqC
}
pp p[r:rr]|ee r p=p=pp(a r p)rr
pp a _=a
a  x[ll:l]=[ll:a x  l]
a l ll=[l]
l[]rr=e'l''l'
l ff[]=f

l[r:rr][ss:ll]=l rr ll
rr x y|l x y=y=x

Спробуйте в Інтернеті! Завдяки @ Οurous за те, що він показав мені, що можна зателефонувати до машинного коду ABC безпосередньо з Clean. Це дозволяє позбутися від попередньої горловини, importяка встановила мінімальний бал 7, але потребує ключового словаcode яке встановлює мінімальний бал до 5 для цього підходу.

Неперероблену та не оптимізовану версію наведеного вище коду можна знайти тут: Спробуйте в Інтернеті!


Попередня версія з оцінкою 7, 158 154 130 байт

import  StdEnv  
@[xx:rr]=c(%[][xx:rr])(@rr)
@e=e
c s b|  length  s<  length  b=b=s
%s[xx:r]|  isMember xx s=s= %(s++[xx])r
%r _=r

Спробуйте в Інтернеті!

При importрахунку не може йти нижче 7. Без імпорту можна було б необхідно реалізувати рівність на строк або символів без яких - або бібліотечних функцій, є , ймовірно , НЕ можливо, як можна бачити в новій версії вище.


1
Ви дійсно можете реалізувати рівність, використовуючи вбудований ABC, який повинен зменшити бал. Я повернусь із запропонованою модифікацією пізніше сьогодні, якщо вас зацікавить.
Οurous

Напр .: char рівність: tio.run/##S85JTcz7/…
Οurous

@Ourous A code block with raw ABC instructions, which can be used for primitive functions like integer addition, for linking with C, bypassing the type system... welcome down the rabbit hole!( від cloogle ) безумовно звучить привабливо. Я вивчу це завтра, дякую за пропозицію!
Лайконі

1
@ Οurous Ще раз спасибі, з вашим тестом на рівність
чару

Між іншим, вам не потрібен жоден -ILпрапор, оскільки нічого не імпортується.
Οurous

3

Python 3 , оцінка 4, 155 байт

exec(('l=la''mbd''a f'',e=en''ume''rat''e:m''ax''([f[ j  :k]  for  j,i in e ( f)f''or  k,i in e ( f )if  len  ( { *''f[j'':k]''})==k-''j],''key''=le''n)'))

Це визначає функцію l.

Завдяки @xnor за те, що вказав, що рядки довжиною 3 не підвищують бал, економлячи 32 байти.

Спробуйте в Інтернеті!


Рядок може бути в шматки 3, правда?
xnor

@xnor Змінення назви функції. Спасибі!
Денніс

3

Брахілог , оцінка 2, 19 байт

s  ᶠ  l  ᵒ  ≠  ˢ  t

Спробуйте в Інтернеті!

Просто нудна стара відповідь "все на все". Принаймні я дізнався, що метапредикати можуть бути віддалені від предикатів і все ще працювати (а (параметричні) підписки та надписи не можуть).

s ᶠ - знайти всі підрядки даного рядка

l ᵒ - упорядкуйте їх за їх довжиною (за зростанням за замовчуванням)

≠ ˢ - виберіть ті, у яких є всі чіткі елементи

t - дістати хвіст (останній елемент) цього - той, який має найбільшу довжину


2

Pyth , 11 байт, оцінка 4

-4 бали завдяки Деннісу

e lD {I# .:

elD{I#.:Q      Full program, inputs "string" from stdin and outputs to stdout
e              The last element of the list generated by taking
      .:Q      All substrings of the input
     #         Filtered for
   {I          Being invariant over deduplicate i.e. being "non-repeating"
 lD            and sorted by length

Спробуйте в Інтернеті!


2

Лушпиння , оцінка 2, 10 байт

►IIËII≠IIQ

Спробуйте в Інтернеті!

Пояснення

Програма еквівалентна цій:

►Ë≠Q  Implicit input.
   Q  List of substrings.
►     Find one that maximizes:
 Ë    all ordered pairs
  ≠   are inequal.

Вбудований Ëоцінює всі впорядковані пари свого аргументу xта повертає, length(x)+1якщо кожен результат є правдивим, інакше 0. Коли ми максимізуємо це, ми знаходимо найдовший рядок, що не має повторених символів.

У поданні я просто вставляю функцію ідентичності Iміж кожною функцією, двічі. Оскільки те саме Ë, що I≠таке, і таке інше, це не змінює семантику. Єдина небезпека полягає в тому, що функція вищого порядку може вирішити використовувати один із Is як аргумент, але, на щастя, це призводить до помилки типу в нашій програмі, тому цього не відбувається.


2

Clojure, оцінка 4

#(  let  [N  (fn  [[_ & r]] r) R  (fn  R [f v c]  (if  c (R f (f v (  nth  c 0))  ( N  c)) v)) C  (fn  C  (  [i]  (C (  seq  i) 0)) ( [i  n]  (if i (C ( N  i )  (  inc n)) n)))  J  (fn  [c  i]  (assoc c (C  c) i)) I  (fn  F [f i n R]  (if ( =  (C  R) n) R (F f (f  i) n ( J  R (f  i)))))] ( apply  str  (R ( fn  [a  b] ( if  (< (C  a)  (C  b)) b a )) "" (  for  [k  (I N % (C  % ) [])]  (R  ( fn [ t  c ] ( if ( or ( = t (  str t) ) ((  set t)c))(apply  str t) ( J  t c)))[]k)))))

О людино це було боляче! Nреалізує next, Rє reduce, Cє count, Jє conj(працює тільки для векторів) і Iє iterate. apply strє двічі, тому що в іншому випадку "aaaa" введення не поверне рядок, а вектор [\a]. На щастя, я звик використати, applyі assocя не знав, що ти можеш призначити один індекс поза останнім елементом вектора: o


Я поголив трохи місця: Спробуйте це в Інтернеті!
Ørjan Johansen

1

Желе , набрати 5, 10 байт

ẆµQQ⁼µÐfµṪ

Спробуйте в Інтернеті!


2
Можна знизити бал до 3, додавши пробіли у коді. Наприклад: ẆµQQ ⁼ µ Ðf µ Ṫ(напевно, зараз додано занадто багато пробілів, але це лише приклад. Залишаю оптимізувати підрахунок байтів та пробілів).
Кевін Кройсейсен

1

Python 3 , оцінка 4, 317 байт

exec(('%s'  *58  %(  's=','in','pu','t(',');','pr','in','t(','so','rt','ed','((s','[i',':j',']f','or',' j',' i','n ','ra','ng','e(','1,','le','n(','s)','+1',')f','or',' i',' i','n ','ra','ng','e(','j)','if',' l','en','(s','et','(s','[i',':j',']))','==l','en','(s','[i',':j',']))',',k','ey','=l','en',')[','-1','])')))

Спробуйте в Інтернеті!

Невикористаний код:

s=input();print(sorted((s[i:j]for j in range(1,len(s)+1)for i in range(j)if len(set(s[i:j]))==len(s[i:j])),key=len)[-1])

lambda aмістить mbda який має бал 5, і функція потребуєreturn яку, мабуть, неможливо execвідредагувати (тому приймає бал щонайменше 5 для eturn), тому необхідна повноцінна програма. Напевно, можна зовсім небагато змінити розмір коду, але я не можу побачити швидке чітке покращення.


1

Аліса , 40 байт

/ii..nn$$@@BBww..DD~~FF..!!nn$$KK??oo@@

(Новий рядок)

Спробуйте в Інтернеті!

Покажчик інструкцій рухається по діагоналі в порядковому режимі, тому виконується лише кожен інший символ.

i.n$@Bw.D~F.!n$K?o@

i     take input
.n$@  terminate if empty
B     push all nonempty substrings, with the longest on the top of the stack
w     push return address (start main loop)
.     make copy of current substring
D     deduplicate characters
~     swap: this places the original above the deduplicated copy
F     Push the original string if it is a substring of the deduplicated copy
      (which can only happen if they're equal); otherwise push empty string
.!    place a copy on the tape
n$K   if the empty string was pushed, return to start of loop
o     output
@     terminate

1

Perl 6 , оцінка: 15 10 8, довжина: 46 55 62 байт

{~m:ov/(.+)<!{$0.comb.repeated}>/.max(&chars)}

Перевірте це

{~m:ov/(..*)<!{(($0)).comb.repeated}>{{}}/.max(&chars)}

Перевірте це

{m:ov:i/(..*)<!{(($0)).comb.repeated}>{{}}/.max((&chars)).Str}

Перевірте це

Розширено:

{    # bare block lambda with implicit parameter 「$_」

    m                          # match (implicitly against 「$_」)
    :overlap                   # in every single way possible
    :ignorecase                # add a 「:」 to break up substring
    /

      (..*)                    # match at least one character

      <!{
        (($0)).comb.repeated  # backtrack if there were repeats
      }>

      {{}}                    # anon hash in code block (no-op)
    /

    .max((&chars))            # get the longest

    .Str                      # coerce to a Str (from a Match object)
}

Оцінка 5 для 88 байт. Хоча для байтів для гольфу може бути кілька місць
Джо Кінг,

1

Java 8, оцінка 9 (384 Б) 7 (401 Б)

S -> { int s = 0 , e = 0 , l = 0 , x = 0 , y = 0 , b [ ] = new int [ 256 ] ; for ( ; x <S.  length  & y <S.  length  & l <S.  length  - x ; x ++ ) { b [S[x]] = 1 ; for ( y ++ ; y <S.  length  && b [S[y]] < 1 ; b [S[y ++]] = 1 ) ; if ( l < y - x ) { s = x ; e = y ; l = y - x ; } for ( ; y <S.  length  && x < y & S[x] != S[y  ];)b [S[x ++]] = 0 ; }  String g=""; for( ; s<e ; g+= S[s++]);  return  g;}
  • Початкова версія. Зійде звідси. Оцінка 9 за рахунок "ubstring ", такsubstring перша частина буде замінена.
  • Оцінка зараз 7 за рахунок " length" , що я, ймовірно, не зможу знижувати далі .. Я сумніваюся, що можна відмовитися від чотирьох застосувань length. Якщо можливо, " eturn"(6) може знизити бал на 1 як остаточне поліпшення, але, мабуть, це воно (крім, можливо, невеликого зменшення кількості байтів.)

Спробуйте в Інтернеті.


0

Хаскелл , оцінка 7

-4 завдяки Лайконі.

import  Data.List  
f s=snd $ maximum [ (0<$i ,i)|i<-  tails  =<<inits s, nub i==i]

Спробуйте в Інтернеті!


3
f s=snd$maximum[(0<$i,i)|i<-tails=<<inits s,nub i==i]економить байт і два на рахунку.
Лайконі

3
Додавання пробілів зменшує бал до 7: Спробуйте в Інтернеті!
Лайконі

0

Математика, оцінка 11 9

Length@Last@Select[Subsequences[Characters@#],#==DeleteDuplicates  @#&]&

Розділіть пару байтів з найдовшої повторюваної рядки, затемнюючи ім'я функції:

Length@Last@Select[Subsequences[Characters  @#],#==(  ToExpression@ 
StringJoin@@FromCharacterCode@{{68},{101},{108},{101},{116},{101},{68},{117},
{112},{108},{105},{99},{97},{116},{101},{115}}))@#&]&

0

Котлін , оцінка: 11 10 9 байт, довжина: 227 246 245 байт

indices
  .flatMap { p -> indices . map { p to p + it } }
  .  filter { (r,i) -> i < length  }
  .map { ( s , a )->substring  (  s,  a  ) }
  .  filter { it  .  groupBy  { it } .  none { ( k , v )->v . size>1 } }
  .maxBy { it.length }

Найдовше ubstring - 9 символів

Це називається так:

val c = "Good morning, Green orb!"

fun String.c(): String? = indices
    .flatMap { p -> indices . map { p to p + it } }
    .  filter { (r,i) -> i < length  }
    .map { ( s , a )->substring  (  s,  a  ) }
    .  filter { it  .  groupBy  { it } .  none { ( k , v )->v . size>1 } }
    .maxBy { it.length }

fun main(args: Array<String>) {
    val text = """indices
    .flatMap { p -> indices . map { p to p + it } }
    .  filter { (r,i) -> i < length  }
    .map { ( s , a )->substring  (  s,  a  ) }
    .  filter { it  .  groupBy  { it } .  none { ( k , v )->v . size>1 } }
    .maxBy { it.length }"""
    val message = text.c()!!
    println(message)
    println(text.length)
    println(message.length)
    println(c.c())
}

Ви не можете зменшити його до 10, додавши додатковий пробіл між roupingByі {?
Кевін Кройсейсен

1
Приємна знахідка, я змінив інші 11-і та зійшов на 10
jrtapsell

Це є 10 символів, але найдовший підрядка не roupingBy(що становить 9 символів) , але eachCount(з завершальним пробілом).
Ерік Аутгольфер

roupingBy має пробіл (видно на розмітці, але, схоже,
рендерінг знімає

Вдалося зменшити його до 9,
виправивши


0

05AB1E , 22 байти | Оцінка: 2

Œ  ʒ  D  Ù  Q  }  é  ¤

-1 бал + 7 байт завдяки HeebyJeeby

Спробуйте в Інтернеті!


05AB1E , 15 байт | Оцінка: 3

Œ ʒ D Ù Q } é ¤

Спробуйте в Інтернеті!


05AB1E , 8 байт | Оцінка: 8

ŒʒDÙQ}é¤

Спробуйте в Інтернеті!


05AB1E насправді може зробити щось досить дешеве ... додавання пробілів у 05AB1E нічого не робить.

Якщо проти цього є якесь правило, я можу також використати ´і подобатися ще 7 символів.


1
@HeebyJeebyMan, тому що я дебіл, у вас проблема з цим?
Чарівний восьминога Урна

@HeebyJeebyMan жартує ха-ха, дякую за ідею.
Чарівний восьминога Урна
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.