หมายเลขนี้เป็นฐานอะไร


31

นี่คือความท้าทายที่ง่ายดี:

ได้รับสตริงที่แสดงตัวเลขที่อยู่ในฐานที่ไม่รู้จักการตรวจสอบฐานที่ต่ำที่สุดว่าจำนวนอาจจะอยู่ใน. 0-9, a-zสตริงจะมีเฉพาะ หากคุณต้องการคุณอาจเลือกที่จะใช้ตัวอักษรตัวพิมพ์ใหญ่แทนตัวพิมพ์เล็ก แต่โปรดระบุสิ่งนี้ คุณต้องส่งออกฐานที่ต่ำที่สุดเท่าที่เป็นไปได้นี้ในรูปทศนิยม

นี่คือตัวอย่างที่เป็นรูปธรรมมากขึ้น หากสตริงอินพุตคือ "01234" เป็นไปไม่ได้ที่ตัวเลขนี้จะเป็นเลขฐานสองเนื่องจาก 2, 3 และ 4 ไม่ได้ถูกกำหนดไว้ทั้งหมดในไบนารี ในทำนองเดียวกันตัวเลขนี้ไม่สามารถอยู่ในฐาน 3 หรือฐาน 4 ดังนั้นหมายเลขนี้จะต้องอยู่ในฐาน 5 หรือฐานที่สูงกว่าดังนั้นคุณควรส่งออก '5'

รหัสของคุณจะต้องใช้กับฐานใดก็ได้ระหว่างฐาน 1 (แยกจากกันทั้งหมด '0's) และฐาน 36 (' 0-9 'และ' a-z ')

คุณสามารถรับอินพุตและให้ผลลัพธ์ในรูปแบบที่เหมาะสม อนุญาตให้สร้างการแปลงฐานได้ ตามปกติจะใช้ช่องโหว่มาตรฐานและคำตอบสั้น ๆ เป็นไบต์เป็นผู้ชนะ!

ทดสอบ IO:

#Input          #Output
00000       --> 1
123456      --> 7
ff          --> 16
4815162342  --> 9
42          --> 5
codegolf    --> 25
0123456789abcdefghijklmnopqrstuvwxyz    --> 36

8
ฉันสามารถส่งออกในฐาน 36 ได้หรือไม่
Leun Nun

9
@LeakyNun Geez ฉันหวังว่าจะไม่
เดนนิส

4
@LeakyNunYou must output this lowest possible base in decimal.
DJMcMayhem

3
@RohanJhunjhunwala หากนั่นเป็นภาษาของคุณที่ใกล้เคียงกับสตริงมากที่สุดฉันไม่เห็นว่าทำไม
DJMcMayhem

3
โดยทั่วไปแล้ว unary คือ 1s ทั้งหมดและเลขศูนย์นำหน้าไม่ได้เป็นมาตรฐานสำหรับระบบตัวเลขใด ๆ ก็ตาม
หยุดทำร้ายโมนิก้า

คำตอบ:


16

เยลลี่ขนาด 4 ไบต์

ṀØBi

ต้องการตัวพิมพ์ใหญ่ ลองออนไลน์! หรือตรวจสอบกรณีทดสอบทั้งหมด

มันทำงานอย่างไร

ṀØBi  Main link. Arguments: s (string)

Ṁ     Yield the maximum of s.
 ØB   Yield "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
   i  Find the 1-based index of the maximum in that string.

1
จริงๆแล้วมันคือ 7 ไบต์ไม่ใช่ 4 ตัวแรก 2 ตัวคือมัลติไบต์
Nicomak

14
@Nicomak คำตอบนี้ได้รับการเข้ารหัสในหน้ารหัสวุ้นที่ซึ่งอักขระเหล่านี้ทั้งหมดถูกเข้ารหัสเป็น 1 ไบต์แต่ละตัว
Loovjo

26

Python ขนาด27 22 ไบต์

lambda s:(max(s)-8)%39

สิ่งนี้ต้องการอินพุตเป็น bytestring (Python 3) หรือ bytearray (Python 2 และ 3)

ขอบคุณ @AleksiTorhamo สำหรับการเล่นกอล์ฟ 5 ไบท์!

ทดสอบบนIdeone

มันทำงานอย่างไร

เราเริ่มต้นด้วยการรับค่าสูงสุดของสตริง จุดรหัสของตัวอักษรนี้สูงกว่าจุดรหัสของตัวเลขตัวอักษรสูงสุดนี้ยังเป็นฐานสูงสุด 36 หลัก

จุดรหัสของ'0' - '9'คือ48 - 57ดังนั้นเราต้องลบ48จากจุดรหัสของพวกเขาเพื่อคำนวณตัวเลขที่เกี่ยวข้องหรือ47เพื่อคำนวณฐานที่ต่ำที่สุด ในทำนองเดียวกันจุดรหัสตัวอักษร'a' - 'Z'เป็น97-122 เนื่องจาก'a'หมายถึงตัวเลขที่มีค่า10เราจะต้องลบ87ออกจากจุดรหัสเพื่อคำนวณตัวเลขที่เกี่ยวข้องหรือ86เพื่อคำนวณฐานที่ต่ำที่สุดที่เป็นไปได้ วิธีหนึ่งในการบรรลุเป้าหมายนี้มีดังนี้

ความแตกต่างระหว่าง97และ58 ( ':'ตัวละครหลัง'9' ) คือ39ดังนั้นการใช้รหัสจุดโมดูโล39สามารถทำให้เกิดการลบได้ ตั้งแต่48% 39 = 9และผลที่ต้องการสำหรับตัวละคร'0'เป็น1ครั้งแรกที่เราลบ8ก่อนที่จะผลแบบโมดูโล39 ลบครั้งแรกเป็นสิ่งที่จำเป็นอย่างอื่นตั้งแต่'U' 39% = 117% 39 = 0

c    n    n-8    (n-8)%39
0    48    40     1
1    49    41     2
2    50    42     3
3    51    43     4
4    52    44     5
5    53    45     6
6    54    46     7
7    55    47     8
8    56    48     9
9    57    49    10
a    97    89    11
b    98    90    12
c    99    91    13
d   100    92    14
e   101    93    15
f   102    94    16
g   103    95    17
h   104    96    18
i   105    97    19
j   106    98    20
k   107    99    21
l   108   100    22
m   109   101    23
n   110   102    24
o   111   103    25
p   112   104    26
q   113   105    27
r   114   106    28
s   115   107    29
t   116   108    30
u   117   109    31
v   118   110    32
w   119   111    33
x   120   112    34
y   121   113    35
z   122   114    36

หากคุณสร้าง Python 3 และรับอินพุตเป็นสตริงไบต์คุณสามารถปล่อยord()และชนะได้ 3 ไบต์ :)
Aleksi Torhamo

ความคิดดี! ให้ฉันถาม OP
เดนนิส

3
@AleksiTorhamo NOOOOOOOOOOOO yu do dis
Rɪᴋᴇʀ

20

Python ขนาด 25 ไบต์

lambda x:int(max(x),36)+1

xกำหนดแลมบ์ดาที่ใช้เวลาสตริง ค้นหาตัวเลขที่ใหญ่ที่สุดในสตริง (เรียงลำดับด้วยตัวอักษรเหนือตัวเลขตามค่าเริ่มต้นของ python) และแปลงเป็นฐาน 36 เพิ่ม 1 เนื่องจาก8ไม่ได้อยู่ในฐาน 8


11

Haskell, 34 ไบต์

f s=length['\t'..maximum s]`mod`39

ใช้mod(ord(c)-8,39)ความคิดจากเดนนิส

41 ไบต์

g '0'=1
g 'W'=1
g x=1+g(pred x)
g.maximum

45 ไบต์:

(`elemIndex`(['/'..'9']++['a'..'z'])).maximum

Just 3เอาท์พุทเช่น


6

Cheddar , 34 29 21 bytes

บันทึก 8 ไบต์ขอบคุณเดนนิส !!!

s->(s.bytes.max-8)%39

ใช้อักษรตัวพิมพ์เล็ก

ลองออนไลน์

คำอธิบาย

s -> (      // Input is `s`
  s.bytes    // Returns array of char codes
   .max      // Get maximum item in array
) % 39      // Modulus 39


12
@DJMcMayhem .___ ฉันไม่รู้ด้วยซ้ำว่าภาษาของฉันสามารถทำได้
Downgoat

แล้วจะ(-)&8เป็นn->n-8อย่างไร
Conor O'Brien

@ ConorO'Brien> _> _> _> ฉันยังไม่ได้รับสิ่งนั้น ฉันแค่วางแผนที่จะทำมันแล้วความท้าทายนี้ก็โพสต์ f&nพันธบัตรเบา ๆnเพื่อหาเรื่องแรกของฟังก์ชั่น
Downgoat

@ ลงไปโอ้ > _>
Conor O'Brien

6

05AB1E , 6 ไบต์

{¤36ö>

ใช้ตัวอักษรเป็นตัวพิมพ์ใหญ่

คำอธิบาย

{       # sort
 ¤      # take last
  36ö   # convert from base 36 to base 10
     >  # increment

ลองออนไลน์


ให้อภัยความไร้เดียงสาของฉันด้วย 05AB1E แต่คุณหมายถึงแปลงจากฐาน 36 (เป็นฐาน 10) หรือไม่
Keeta

@Keeta คุณถูกต้องแน่นอน ความผิดฉันเอง.
Emigna



4

JavaScript (ES6), 41 37 ไบต์

s=>parseInt([...s].sort().pop(),36)+1

แก้ไข: บันทึกแล้ว 4 ไบต์ด้วย @ edc65


ใช้pop()เพื่อบันทึก 4
edc65

@ edc65 ฉันไม่อยากจะเชื่อเลยว่านั่นไม่ใช่คำแนะนำ JavaScript
Neil

3

Haskell, 55 40 ไบต์

f=(\y->mod(y-8)39).Data.Char.ord.maximum

ขอบคุณ @Dennis สำหรับแนวทางของเขา (รับสิ่งนั้น @xnor;))


ฉันคิดว่าคุณสามารถลบได้f=38 ไบต์เนื่องจากfไม่มีข้อโต้แย้งที่ชัดเจน
Cyoce

3

Perl 6: 18 ไบต์

{:36(.comb.max)+1}

กำหนดแลมบ์ดาที่รับอาร์กิวเมนต์สตริงเดี่ยวและส่งคืนเลขจำนวนเต็ม มันแยกสตริงเป็นอักขระค้นหาสตริงที่ "สูงที่สุด" แปลงเป็นฐาน 36 เพิ่ม 1

{(.ords.max-8)%39}

อันนี้ใช้วิธีการโมดูโลจากเดนนิส ความยาวเท่ากัน


2

เรติน่า 28 ไบต์

O`.
.\B

{2`
$`
}T01`dl`_o
.

ลองออนไลน์! (บรรทัดแรกเปิดใช้งานชุดทดสอบที่แยกบรรทัดด้วยฟีด)

คำอธิบาย

O`.

นี่เป็นการเรียงอักขระของอินพุต

.\B

สิ่งนี้จะลบอักขระทั้งหมดยกเว้นที่ผ่านมาดังนั้นสองขั้นตอนแรกจะค้นหาอักขระสูงสุด

{2`
$`
}T01`dl`_o

เหล่านี้เป็นสองขั้นตอนซึ่งก่อให้เกิดการวนซ้ำ อักขระตัวแรกทำซ้ำอักขระตัวแรกและตัวที่สอง "ลดค่า" (แทนที่เช่นxด้วยw, aด้วย9และ1ด้วย0) สเตจหลังพบศูนย์เป็นอักขระตัวแรกโดยจะลบออกแทน นี่เป็นเทคนิคมาตรฐานสำหรับการสร้างช่วงของตัวละครที่กำหนดปลายบน ดังนั้นสิ่งนี้จะสร้าง "หลัก" ทั้งหมดจาก0เป็นจำนวนสูงสุด

.

ในที่สุดเราก็นับจำนวนหลักซึ่งทำให้เรามีฐาน


2

R, 99 89 85 ไบต์

ดูสิ! น้อยกว่า 100 ไบต์!
ดูสิ! ปิด10ไบต์!
ดูสิ! ปิด4ไบต์!

ifelse((m=max(strsplit(scan(,''),"")[[1]]))%in%(l=letters),match(m,l)+10,strtoi(m)+1)

Ungolfed:

l=letters                  #R's built-in vector of lowercase letters

n=scan(what=characters())  #Takes an input from STDIN and convert it to characters

m=max(strsplit(n,"")[[1]]) #Splits the input and takes to max. 
                           #`letters` are considered > to numbers (i.e. a>1)


ifelse(m%in%l,match(m,l)+10,strtoi(m)+1) #If the max is in `letters`,
                                             #outputs the matching position of `m`in `letters` + 10 (because of [0-9]). 
                                             #Else, outputs `m` (as a number) + 1.

บ่อยครั้งที่คำตอบนี้ใช้ประโยชน์จากifelseฟังก์ชัน:ifelse(Condition, WhatToDoIfTrue, WhatToDoElse)


ฉันรักเวอร์ชั่นของคุณ อย่างไรก็ตามการรักษาตัวอักษรและตัวเลขแยกกันสร้างไบต์พิเศษที่น่ารำคาญเหล่านั้น โปรดดูโซลูชันของฉันที่ใช้วิธีการอื่น
Andreï Kostyrka

คำตอบของคุณน่าสนใจแน่นอน ฉันจะใช้scanวิธีการของคุณเพื่อเล่นกอล์ฟขนาดไบท์;)
Frédéric

1

PHP, 51 38 ไบต์

(จากเดนนิส) ^^

<?=(ord(max(str_split($argv[1])))-8)%39;

ข้อเสนออื่น ๆ โดยไม่มีเคล็ดลับของเดนนิส

<?=($a=max(str_split($argv[1])))<a?$a+1:ord($a)-86;
  • รับอินพุตเป็นอาร์กิวเมนต์ $ argv [1];
  • ใช้ค่าอักขระสูงสุด (โดยใช้ ASCII)
  • หากเป็นตัวเลข (ด้อยกว่า <'a' ค่า ascii) ให้แสดงหมายเลข + 1
  • เอาท์พุท ascii ค่าอื่น -86 (97 สำหรับ 'a' in ascii, -11 สำหรับ 'a' คือ 11 หลักฐาน)

มันแย่มาก PHP มีชื่อฟังก์ชั่น verbose ดังกล่าว: <?=base_convert(max(str_split($argv[1])),36,10)+1เป็นคำตอบที่สวยงาม แต่มีขนาด 49 ไบต์!

@YiminRong คุณสามารถใช้intval()แทนbase_convert()ซึ่งย่อให้เหลือ 38 ไบต์<?=intval(max(str_split($argn)),36)+1;tio: tio.run/##K8go@P/…
640KB



1

Java 7, 67 61 ไบต์

int c(char[]i){int m=0;for(int c:i)m=m>c?m:c;return(m-8)%39;}

(m-8)%39ขอบคุณ@Dennisคำตอบที่น่าตื่นตาตื่นใจ '

Ungolfed & รหัสการทดสอบ:

ลองที่นี่

class Main{
  static int c(char[] i){
    int m = 0;
    for(int c : i){
      m = m > c
           ? m
           : c;
    }
    return (m-8) % 39;
  }

  public static void main(String[] a){
    System.out.println(c("00000".toCharArray()));
    System.out.println(c("123456".toCharArray()));
    System.out.println(c("ff".toCharArray()));
    System.out.println(c("4815162342".toCharArray()));
    System.out.println(c("42".toCharArray()));
    System.out.println(c("codegolf".toCharArray()));
    System.out.println(c("0123456789abcdefghijklmnopqrstuvwxyz".toCharArray()));
  }
}

เอาท์พุท:

1
7
16
9
5
25
36

2
แทนที่จะใช้Math.max()คุณสามารถm = m>c?m:c
RobAu

@RobAu อ่าแน่นอนขอบคุณ สมบูรณ์ลืมเกี่ยวกับมัน .. บางครั้งฉันลืมสิ่งที่ง่ายที่สุดใน codegolfing Java ที่ถูกกล่าวถึงแม้หลายครั้งในเคล็ดลับสำหรับการ Codegolfing ในชวาโพสต์ ขอบคุณสำหรับการเตือน
Kevin Cruijssen

หากคุณเปลี่ยนมาใช้ Java 8 คุณสามารถแทนที่ฟังก์ชั่นทั้งหมดนี้ด้วยแลมบ์ดาที่ทำหน้าที่เดียวreduce
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft ฉันรู้ซึ่งเป็นเหตุผลที่ฉันพูดถึงมันโดยเฉพาะเป็น Java 7 รู้สึกฟรีเพื่อโพสต์ Java 8 แลมบ์ดาเป็นคำตอบที่แยกต่างหาก
Kevin Cruijssen

@ BlueRaja-DannyPflughoeft ฉันสงสัยว่าจะจบลงด้วยไบต์น้อย ..
RobAu

1

C89, 55 53 52 50 ไบต์

f(s,b)char*s;{return*s?f(s+1,*s>b?*s:b):(b-8)%39;}

-8%39 ถูกขโมยไปอย่างไร้ยางอายจาก Dennis

ทดสอบ

test(const char* input)
{
    printf("%36s -> %u\n", input, f((char*)input,0));
}

main()
{
    test("00000");
    test("123456");
    test("ff");
    test("4815162342");
    test("42");
    test("codegolf");
    test("0123456789abcdefghijklmnopqrstuvwxyz");
}

เอาท์พุต

                               00000 -> 1
                              123456 -> 7
                                  ff -> 16
                          4815162342 -> 9
                                  42 -> 5
                            codegolf -> 25
0123456789abcdefghijklmnopqrstuvwxyz -> 36

บันทึก 2 ไบต์ขอบคุณ Toby Speight

บันทึก 2 ไบต์ขอบคุณ Kevin Cruijssen


คุณสามารถบันทึก 2 ไบต์ที่มีการประกาศที่ไม่ใช่ต้นแบบ: กลายเป็นf(char*s,int b) f(s,b)char*s;
Toby Speight

คุณสามารถประหยัดได้ 3 ไบต์โดยการลบวงเล็บและช่องว่างที่ไม่จำเป็นออกไป:f(s,b)char*s;{return*s?f(s+1,*s>b?*s:b):(b-8)%39;}
Kevin Cruijssen

@KevinCruijssen ขอบคุณ
YSC

1

C, 55 ไบต์

คำตอบนี้อนุมานว่าอินพุตอยู่ใน ASCII (หรือเหมือนกันในตัวเลขและตัวอักษรเช่น ISO-8859 หรือ UTF-8):

m;f(char*s){for(m=0;*s;++s)m=m>*s?m:*s;return(m-8)%39;}

เราทำการวนซ้ำตามสตริงโดยจดจำค่าที่มากที่สุดที่เห็นได้จากนั้นใช้การแปลง modulo-39 ที่รู้จักกันดีจากฐาน - {11..36}

โปรแกรมทดสอบ

int printf(char*,...);
int main(int c,char **v){while(*++v)printf("%s -> ",*v),printf("%d\n",f(*v));}

ผลการทดสอบ

00000 -> 1
123456 -> 7
ff -> 16
4815162342 -> 9
42 -> 5
codegolf -> 25
0123456789abcdefghijklmnopqrstuvwxyz -> 36

คุณไม่สามารถลบ m = 0 ได้ไหม หาก m ปรากฏที่ระดับบนสุดของไฟล์ extern ของมันซึ่งหมายถึงสแตติกซึ่งหมายถึงการเริ่มต้นเป็นศูนย์
แบทแมน

@Batman - ใช่ แต่ถ้าคุณจะไม่โทรf()มากกว่าหนึ่งครั้ง ฉันรู้ว่าเกือบทุกเกมยุติธรรมในสนามกอล์ฟ แต่สัญชาตญาณการงานของฉันถือว่าเป็นสิ่งที่บอบบางเกินไป!
Toby Speight

ในความคิดต่อไปฉันจะทำให้มันเป็นความต้องการภายนอกที่จะตั้งค่าระหว่างการโทรไปยังm f()จากนั้นโปรแกรมทดสอบของฉันก็ยังสามารถใช้งานได้
Toby Speight

@Batman: ในCode Golf Metaความเห็นส่วนใหญ่เกี่ยวกับคำถาม " การส่งฟังก์ชั่นจะต้องนำมาใช้ซ้ำได้หรือไม่ " ดูเหมือนจะไม่อนุญาตให้ใช้งานแบบใช้ครั้งเดียว ดังนั้นฉันจะยึดติดกับสิ่งที่ฉันมี ขอบคุณสำหรับคำแนะนำ
Toby Speight

1

Mathematica, 34 32 ไบต์

บันทึก 2 ไบต์ด้วย Martin Ender

Max@Mod[ToCharacterCode@#-8,39]&

ฉันตัดสินใจว่าวิธีการอื่นควรได้รับคำตอบใหม่

วิธีที่ถูกขโมยได้รับแรงบันดาลใจจากโซลูชันของเดนนิส


2
ใช้สัญกรณ์นำหน้า: Max@Mod[ToCharacterCode@#-8,39]&(เหมือนกันกับคำตอบอื่น ๆ ของคุณ)
Martin Ender

2
นอกจากนี้คุณต้องเพิ่ม&ไปยังจุดสิ้นสุดเพื่อระบุฟังก์ชั่นที่ไม่ระบุชื่อ
LegionMammal978

คุณลืม@คำตอบทั้งสองข้อ ( ToCharacterCode@#และCharacters@#)
Martin Ender

1

Mathematica, 34 32 ไบต์

บันทึก 2 ไบต์ด้วย Martin Ender

Max@BaseForm[Characters@#,36]+1&

กำหนดฟังก์ชั่นบริสุทธิ์ที่ใช้สตริงเป็นอินพุต

แยกอินพุตเป็นอักขระแปลงเป็นตัวเลข 36 ฐานและส่งกลับค่า +1 สูงสุด


Max@BaseForm[Characters@#,36]+1&
alephalpha


1

CJam, 10 ไบต์

ขอบคุณ Martin Ender ที่ช่วยฉันสักสองสามไบต์!

ใช้สูตรของเดนนิส

q:e>8-i39%

ลองออนไลน์

CJam, 18 16 btyes

ทางเลือกอื่น ๆ :

A,s'{,97>+q:e>#)

ลองออนไลน์

A,s'{,97>+       e# Push the string "0123456789abcdefghijklmnopqrstuvwxyz"
          q      e# Get the input
           :e>   e# Find the highest character in the input
              #  e# Find the index of that character in the string
               ) e# Increment


1

R, 62 54 ไบต์

max(match(strsplit(scan(,''),"")[[1]],c(0:9,letters)))

Ungolfed:

max(
  match( # 2: Finds the respective positions of these characters
    strsplit(scan(,''),"")[[1]], # 1: Breaks the input into characters
                                c(0:9,letters)) # 3: In the vector "0123...yz"
                                                )

อัปเดต: ลบออก 8 ไบต์เนื่องจากความซ้ำซ้อนของ na.rm=Tภายใต้ข้อสมมติของความถูกต้องของอินพุต

การปรับปรุงที่ 39% ในขนาดที่เมื่อเทียบกับคำตอบของFrédéric นอกจากนั้นมันจะทำงานเร็วขึ้นเล็กน้อย: 0.86 วินาทีสำหรับการจำลองซ้ำ 100,000 ครั้งเทียบกับ 1.09 วินาทีสำหรับคำตอบที่แข่งขันกัน ดังนั้นหนึ่งในของฉันก็เล็กลงและมีประสิทธิภาพมากขึ้น


0

Dyalog APLขนาด 10 ไบต์

พร้อมต์สำหรับอินพุตตัวพิมพ์ใหญ่

⌈/⍞⍳⍨⎕D,⎕A

⌈/ สูงสุด

ตัวละครของอินพุต

⍳⍨ จัดทำดัชนี 1 รายการ

⎕D, ตัวเลขทั้งหมดตามด้วย

⎕A ตัวละครทั้งหมด

ลองใช้ออนไลน์!



0

JavaScript, 57 50 48 ไบต์

7 ไบต์บันทึก thnks ไปที่ @ kamaroso97 บันทึก 2 ไบต์ขอบคุณ @Neil

n=>Math.max(...[...n].map(a=>parseInt(a,36))+1)

คำตอบเดิม:

n=>n.split``.map(a=>parseInt(a,36)).sort((a,b)=>b-a)[0]+1

คุณสามารถเราะ 7 n=>Math.max(...n.split``.map(a=>parseInt(a,36)+1))ไบต์ด้วย
kamoroso94

@ kamoroso94 ฉันไม่ทราบว่าMath.maxมีอยู่จริง ขอบคุณที่บอกฉันเกี่ยวกับมัน!
DanTheMan

[...s]s.split``จะสั้นกว่า
Neil


0

LiveScript, 32 ไบต์

->1+parseInt (it/'')sort!pop!,36

พอร์ตของคำตอบนี้ในภาษาที่ฉันโปรดปรานซึ่งรวบรวมเป็น JavaScript หากbase~numberโอเปอเรเตอร์ทำงานกับตัวแปรฉันสามารถเขียนได้->1+36~(it/'')sort!pop! (23 ไบต์) แต่มันขัดแย้งกับโอเปอเรเตอร์ bind ของฟังก์ชัน: /

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.