เคาน์เตอร์เคาน์เตอร์


18

ในวิชาการพิมพ์ตัวนับเป็นพื้นที่ของตัวอักษรที่ล้อมรอบทั้งหมดหรือบางส่วนโดยฟอร์มจดหมายหรือสัญลักษณ์ ตัวนับปิดเป็นตัวนับที่ล้อมรอบด้วยแบบฟอร์มจดหมายหรือสัญลักษณ์ทั้งหมด คุณต้องเขียนโปรแกรมที่ใช้สตริงเป็นอินพุตและพิมพ์จำนวนทั้งหมดของตัวนับปิดในข้อความ

ข้อมูลของคุณ:

  • อาจเป็นอินพุตบรรทัดคำสั่งหรือจาก STDIN แต่คุณต้องระบุว่า

  • จะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ทั้งหมดซึ่งหมายถึงค่า ASCII ทั้งหมดระหว่าง 32 ถึง 126 ซึ่งรวมถึงช่องว่าง ข้อมูลมากกว่านี้.

ตอนนี้สิ่งนี้จะแตกต่างกันเล็กน้อยระหว่างแบบอักษร ตัวอย่างเช่นแบบอักษรที่คุณกำลังอ่านข้อความนี้พิจารณาว่า 'g' มีตัวนับปิดหนึ่งตัวในขณะที่แบบอักษร google มีตัว 'g' ที่มีตัวนับสองตัวที่ปิด เพื่อให้นี่ไม่ใช่ปัญหานี่คือจำนวนตัวนับอย่างเป็นทางการต่อตัวละคร

สัญลักษณ์ทั้งหมดที่ไม่มีตัวนับปิด:

 !"'()*+,-./12357:;<=>?CEFGHIJKLMNSTUVWXYZ[\]^_`cfhijklmnrstuvwxyz{|}~

โปรดทราบว่านี่รวมถึงพื้นที่

นี่คือสัญลักษณ์ทั้งหมดที่มีหนึ่งตัวนับปิด:

#0469@ADOPQRabdegopq

และนี่คือสัญลักษณ์ทั้งหมดที่มี 2 ตัวนับปิด:

$%&8B

และสุดท้าย แต่ไม่ท้ายสุดนี่คือตัวอย่างอินพุตและเอาต์พุตตัวอย่างบางส่วน

Programming Puzzles and Code-Golf ควรพิมพ์ 13

4 8 15 16 23 42 ควรพิมพ์ 5

All your base are belong to us ควรพิมพ์ 12

Standard loopholes apply ควรพิมพ์ 12

Shortest answer in bytes is the winner! ควรพิมพ์ 8


1
สองคำตอบได้ส่งฟังก์ชั่นแทนโปรแกรมเต็มรูปแบบ ในขณะที่อนุญาตโดยค่าเริ่มต้นถ้อยคำของคุณจะแนะนำเป็นอย่างอื่น คุณช่วยอธิบายได้ไหม
Dennis

คุณจะช่วยเปิดเผยว่าคุณจะนับตัวนับใดบ้าง
Martin Ender

3
แบบอักษรที่ฉันดูอยู่นั้นไม่ตรงกับจำนวนที่คุณให้ เช่นในเบราว์เซอร์ศูนย์มีเส้นทแยงมุมทะลุผ่านให้สองเคาน์เตอร์ แบบอักษรในแอป android ไม่ได้ แต่ที่นี่gมีสองตัวนับที่ปิด คุณพิจารณาตัวนับตามแบบอักษรใด ๆ หรือไม่
Martin Ender

1
@DJMcMayhem 'g' มี 1; แม้ว่าที่ระบุไว้ในรหัสgมี 2 ​​สับสนเล็กน้อยที่จะอ่าน แต่ฉันไม่คิดว่ามันแตกต่างกันตามสถานที่
OJFord

1
ไม่มี0เคาน์เตอร์แบบปิด 2 ตัวในแบบอักษรบางตัวโดยเฉพาะแบบอักษรแบบ monospace จำนวนมากใช่ไหม
vsz

คำตอบ:


10

Pyth, 31 ไบต์

sm@tjC"cúÁ-ÈN%³rØ|­"3Cdz

สาธิต.

โปรดทราบว่ารหัสอาจไม่แสดงอย่างถูกต้องเนื่องจากการใช้อักขระที่ไม่ใช่ ASCII รหัสที่ถูกต้องอยู่ที่ลิงค์

ฉันทำตารางการค้นหาของการส่งออกที่ต้องการสำหรับตัวท่านแต่ละหมุนได้โดย 32 ให้ใช้การจัดทำดัชนี modular Pyth ของติดอยู่ 1 ที่จุดเริ่มต้นและตีความว่ามันเป็นจำนวน 3 2229617581140564569750295263480330834137283757ฐานให้จำนวน จากนั้นฉันแปลงตัวเลขนี้เป็นฐาน 256 และแปลงเป็นสตริงซึ่งเป็นสตริงที่ใช้ในคำตอบ


29

Python 3, 63

print(sum(map(input().count,"#0469@ADOPQRabdegopq$%&8B$%&8B")))

แนวทางที่ตรงไปตรงมา วนซ้ำอักขระแต่ละตัวด้วยตัวนับที่ปิดแล้วรวมจำนวนที่เกิดขึ้นโดยทำสองครั้งสำหรับตัวละครที่มีตัวนับปิดสองตัว มันจะมีความยาวเท่ากันแทนที่จะเขียน

"#0469@ADOPQRabdegopq"+"$%&8B"*2

งูหลาม 3 raw_inputเป็นสิ่งจำเป็นเพื่อหลีกเลี่ยงการ


12

CJam, 41 39 37 34 bytes

"$%&8Badopq#0469@Rbeg"_A<eu+qfe=1b

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

ลองออนไลน์

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

"$%&8Badopq#0469@Rbeg"             e# Push that string.
                      _A<          e# Retrieve the first 10 characters.
                         eu+       e# Convert to uppercase and append.
                                   e# This pushes "$%&8Badopq#0469@Rbeg$%&8BADOPQ".
                            q      e# Read from STDIN.
                             fe=   e# Count the occurrences of each character. 
                                1b e# Base 1 conversion (sum).

2
"$%&8Badopq#0469@Rbeg"_A<eu+.
jimmy23013

@ jimmy23013: ผมได้พยายามที่รูปแบบไม่กี่euและelแต่ฉันไม่เคยพบว่า ขอบคุณ!
Dennis

8

sed, 51

ด้วยความช่วยเหลือของกอล์ฟจาก @manatwork และ @TobySpeight:

s/[$%&8B]/oo/g
s/[^#0469@ADOPQRabdegopq]//g
s/./1/g

อินพุตจาก STDIN เมื่อใช้เมตาคำถามนี้ผลลัพธ์จะอยู่ในเกณฑ์เดียว:

$ echo 'Programming Puzzles and Code-Golf
4 8 15 16 23 42
All your base are belong to us
Standard loopholes apply
Shortest answer in bytes is the winner!' | sed -f countercounter.sed
1111111111111
11111
111111111111
111111111111
11111111
$ 

7

Perl, 41

$_=y/#0469@ADOPQRabdegopq//+y/$%&8B//*2

41อักขระ +1 สำหรับ-pธง

ใช้y ///เพื่อนับอักขระ

echo 'Programming Puzzles and Code-Golf' | perl -pe'$_=y/#0469@ADOPQRabdegopq//+y/$%&8B//*2'

6

GNU APL ขนาด 39 ไบต์

+/⌈20÷⍨26-'$%&8B#0469@ADOPQRabdegopq'⍳⍞

ลองออนไลน์ใน GNU APL.js

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

                                      ⍞ Read input.
          '$%&8B#0469@ADOPQRabdegopq'⍳  Compute the indexes of the input characters
                                        in this string. Indexes are 1-based.
                                        26 == 'not found'
       26-                              Subtract each index from 26.
   20÷⍨                                 Divide those differences by 20.
  ⌈                                     Round up to the nearest integer.
+/                                      Add the results.

6

JavaScript, 86

I / O ผ่านป๊อปอัป เรียกใช้ข้อมูลโค้ดในdเบราว์เซอร์ที่ผ่านมาในการทดสอบ

for(c of prompt(t=0))c='$%&8B#0469@ADOPQRabdegopq'.indexOf(c),~c?t+=1+(c<5):0;alert(t)


6

K, 54 43 42 37 ไบต์

+//(30#"$%&8B#0469@ADOPQRabdegopq"=)'

ตัด 5 ไบต์ด้วย @JohnE!

รุ่นเก่ากว่า:

f:+/(#&"#0469@ADOPQRabdegopq$%&8B$%&8B"=)'

เดิม:

f:+/{2-(5="$%&8B"?x;20="#0469@ADOPQRabdegopq"?x;0)?0}'

#&ภายใน parens เช่นเดียวกับที่ได้อย่างง่ายดายซึ่งหมายความว่าคุณสามารถไปต่อกับ+/ +//"#0469@ADOPQRabdegopq$%&8B$%&8B"=\:ในที่สุดก็ไม่จำเป็นต้องมีf:เนื่องจากสามารถใช้ฟังก์ชันในรูปแบบโดยปริยาย นั่นจะทำให้คุณลดลงเหลือ 38!
JohnE

แต่น่าเสียดายที่เคล็ดลับแก้ปัญหาอื่น ๆ ไม่กี่มีการจ้างงานการกระชับตารางการค้นหาออกมาแม้จะตายด้วยโซลูชั่น 38 +//(30#"$%&8B#0469@ADOPQRabdegopq")=\:ไบต์ปัจจุบัน: นี่อาจเป็นสิ่งที่ดีที่สุดที่เราสามารถทำได้
JohnE

ฮ่าฮ่าไม่ช้าฉันก็โพสต์นั้นนอกจากบันทึกตัวละคร:+//(30#"$%&8B#0469@ADOPQRabdegopq"=)'
JohnE

5

C, 127 ไบต์

n;f(char*i){char*o="#0469@ADOPQRabdegopq",*t="$%&8B";for(;*i;i++)if(strchr(o,*i))n++;else if(strchr(t,*i))n+=2;printf("%d",n);}

ตรงไปตรงมาสวย เวอร์ชันที่ไม่ดี:

int num = 0;
void f(char* input)
{
    char *one="#0469@ADOPQRabdegopq";
    char *two="$%&8B";

    for(;*input;input++)
        if(strchr(one, *input))     //If current character is found in first array
            num ++;
        else if(strchr(two, *input))//If cuurent character is found in second array
            num += 2;

    printf("%d", num);
}

ทดสอบที่นี่

หากไม่อนุญาตให้ใช้อาร์กิวเมนต์ของฟังก์ชันฟังก์ชันจะมีขนาดstdinสูงสุด 141 ไบต์:

n;f(){char*o="#0469@ADOPQRabdegopq",*t="$%&8B",i[99],*p;gets(i);for(p=i;*p;p++)if(strchr(o,*p))n++;else if(strchr(t,*p))n+=2;printf("%d",n);}

โปรดทราบว่ารุ่นด้านบนถือว่าอินพุตมีความยาวไม่เกิน 98 อักขระ

ทดสอบที่นี่

เวอร์ชันของอาร์กิวเมนต์บรรทัดคำสั่ง (143 ไบต์):

n;main(c,v)char**v;{char*o="#0469@ADOPQRabdegopq",*t="$%&8B",*p=v[1];for(;*p;p++)if(strchr(o,*p))n++;else if(strchr(t,*p))n+=2;printf("%d",n);}

ทดสอบที่นี่


1
@DJMcMayhem C นั้นไม่เลวเลย ลองเล่นกอล์ฟที่ Fortran 77;)
Alex A.

5

Python 2, 96 90 75 67 + 2 = 69 Bytes

ไม่สามารถคิดวิธีอื่นในการทำเช่นนี้ ... เป็นสิ่งที่ฉันจะคิดจนกว่าฉันจะเห็นทางออกของ xnor ฉันจะโพสต์สิ่งที่ฉันมีอยู่แล้ว

ขอบคุณ FryAmTheEggman สำหรับการบันทึก 6 ไบต์

เอาล่ะตอนนี้ฉันมีความสุขกับสิ่งนี้

ขอบคุณ xnor สำหรับเคล็ดลับค้นหาประหยัด 4 ไบต์

เพิ่มสองไบต์เนื่องจากอินพุตต้องอยู่ในเครื่องหมายคำพูด

print sum('#0469@ADOPQRabdegopq$%&8B'.find(x)/20+1for x in input())

1
ฉันชอบการใช้ดัชนีอย่างชาญฉลาด! นอกจากนี้ python 3 นั้นสั้นลงเล็กน้อยเนื่องจากใช้อินพุตแทน raw_input
DJMcMayhem


อ้อเข้าใจแล้ว. ขออภัยฉันรวมเข้ากับความคิดเห็นของ @ DJMcMayhem Python 3
จัดการ

4

Java, 162

class C{public static void main(String[]a){System.out.print(-a[0].length()+a[0].replaceAll("[#0469@ADOPQRabdegopq]","..").replaceAll("[$%&8B]","...").length());}}

ดีถ้ามันมีจะเป็นโปรแกรมเต็มรูปแบบ ... มันเป็นเพียงหนึ่งซับว่าตัวละครที่ตรงกันและแทนที่พวกเขาด้วยสตริงอีกต่อไป จากนั้นส่งคืนความแตกต่างจากความยาวเดิม น่าเสียดายที่จาวาไม่มีอะไรให้นับจำนวนการแข่งขัน

นี่คือการขึ้นบรรทัดใหม่:

class C{
    public static void main(String[]a){
        System.out.print(
                -a[0].length() +
                a[0].replaceAll("[#0469@ADOPQRabdegopq]","..")
                .replaceAll("[$%&8B]","...")
                .length()
                        );
    }
}

4

Pyth - 35 ไบต์

ใช้วิธีการที่ชัดเจนในครั้งแรก + * 2 ในวินาที ขอบคุณ @FryTheEggman

s/Lz+"#0469@ADOPQRabdegopq"*2"$%&8B

ลองมันนี่เกมออนไลน์


4

Javascript, 114 95 ไบต์

alert(prompt().replace(/[#046@ADOPQRabdegopq]/g,9).replace(/[$%&8B]/g,99).match‌​(/9/g).length)

ขอบคุณ Ismael Miguel ที่ช่วยฉันเล่นกอล์ฟนี้


2
93 ไบต์:alert(prompt().replace(/[#046@ADOPQRabdegopq]/g,9).replace(/[$%&8B]/g,99).match(/9/g).length)
Ismael Miguel

ขออภัยที่นับไม่ดี ใช่มันคือ 95.
Ismael Miguel

3

Ruby, 59 ไบต์

a=gets;p a.count('#0469@ADOPQRabdegopq')+2*a.count('$%&8B')

อินพุตจากบรรทัดรับคำสั่งหรือ stdin สั้นที่สุดจนถึงขณะนี้โดยใช้ภาษาที่ไม่ลึกลับ

ปรับปรุง: chilemagic เอาชนะฉัน


3

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

1

[#0469@ADOPQRabdegopq]
1
[$%&8B]
11
[^1]
<empty line>

ให้เอาต์พุตใน unary

แต่ละบรรทัดควรไปที่ไฟล์ของตัวเองหรือคุณสามารถใช้การ-sตั้งค่าสถานะ เช่น:

> echo "pp&cg"|retina -s counter
11111

คู่ของเส้น (รูปแบบ - คู่แทน) ทำขั้นตอนการทดแทนต่อไปนี้:

  • ลบ 1 's
  • ทดแทนตัวอักษร 1 ตัวนับด้วย 1
  • เปลี่ยนตัวอักษร 2 ตัวนับด้วย 11
  • ลบทุกอย่างยกเว้น1ของ

3

J, 43

ในฐานะที่เป็นฟังก์ชั่น:

   f=:[:+/[:,30$'$%&8B#0469@ADOPQRabdegopq'=/]
   f 'text goes here'
6

46 ไบต์ (บรรทัดคำสั่ง)

ในฐานะโปรแกรมบรรทัดคำสั่งแบบสแตนด์อโลน:

echo+/,30$'$%&8B#0469@ADOPQRabdegopq'=/>{:ARGV

บันทึกบรรทัดข้างต้นเป็นcounter2.ijsและโทรจากบรรทัดคำสั่ง:

$ jconsole counter2.ijs 'Programming Puzzles and Code Golf'
13

คัดลอกการป้อนข้อมูลลงในโค้ดไม่ได้รับอนุญาต แต่ฟังก์ชั่นที่สามารถรับอินพุตเป็นอาร์กิวเมนต์ก็โอเค f=:your_function_codeเช่น
randomra

2

จูเลีย77 77ไบต์

t=readline();length(join(t∩"#0469@ADOPQRabdegopq")*join(t∩"\$%&8B")^2)

สิ่งนี้อ่านข้อความจาก STDIN และพิมพ์ผลลัพธ์ไปที่ STDOUT

คำอธิบาย Ungolfed +:

# Read text from STDIN
t = readline()

# Print (implied) to STDOUT the length of the intersection of t with the
# 1-closed counter list joined with the duplicated intersection of t with
# the 2-closed counter list
length(join(t ∩ "#0469@ADOPQRabdegopq") * join(t ∩ "\$%&8B")^2)

ตัวอย่าง:

julia> t=readline();length(join(t∩"#0469@ADOPQRabdegopq")*join(t∩"\$%&8B")^2)
Programming Puzzles and Code Golf
13

2

อาร์เอส , 56 ไบต์

_/
[#0469@ADOPQRabdegopq]/_
[$%&8B]/__
[^_]/
(_+)/(^^\1)

การสาธิตสด


เพียงแค่ fyi: ฉันสร้างหน้า esolangs สมบูรณ์สำหรับอาร์เอส คุณอาจต้องการที่จะเพิ่มมัน: esolangs.org/wiki/Rs
mbomb007

@ mbomb007 ว้าว !! ที่เพิ่งทำวันของฉัน : D
kirbyfan64sos

เอ่อ "อาร์เอส" ไม่ได้เกิดขึ้นใน Google หรืออะไรเลยเพราะมันมีแค่สองตัวอักษร ด้วยวิธีนี้ผู้คนสามารถค้นหาได้ :)
mbomb007

2

GNU APL, 37 ตัวอักษร

+/,⍞∘.=30⍴'$%&8B#0469@ADOPQRabdegopq'

สร้างเวกเตอร์อักขระที่มีอักขระ 2 ตัวนับสองครั้ง (30⍴)

เปรียบเทียบแต่ละอักขระอินพุตกับอักขระทุกตัวในเวกเตอร์ (∘. =)

สรุปผลการแข่งขัน ravelled (+ /,)


1

Javascript 159 , 130 Bytes

function c(b){return b.split("").map(function(a){return-1!="$%&8B".indexOf(a)?2:-1!="#0469@ADOPQRabdegopq".indexOf(a)?1:0}).reduce(function(a,b){return a+b})};

unminified:

function c(b) {
    return b.split("").map(function(a) {
        return -1 != "$%&8B".indexOf(a) ? 2 : -1 != "#0469@ADOPQRabdegopq".indexOf(a) ? 1 : 0
    }).reduce(function(a, b) {
        return a + b
    })
};

ด้วยความช่วยเหลือของ @ edc65:

function c(b){return b.split('').reduce(function(t,a){return t+(~"$%&8B".indexOf(a)?2:~"#0469@ADOPQRabdegopq".indexOf(a)?1:0)},0)}

2
ในฐานะที่~ -1 == 0คุณสามารถเขียนแทน~x? -1 != x?เห็นฉันตอบสำหรับตัวอย่างของการใช้งาน
edc65

2
function c(b){return b.split('').reduce(function(t,a){return t+(~"$%&8B".indexOf(a)?2:~"#0469@ADOPQRabdegopq".indexOf(a)?1:0)},0)}ไม่จำเป็นต้องมีmapแล้วreduce
edc65

1

Haskell, 117

a="#0469@ADOPQRabdegopq"
b="$%&8B"
c n[]=n
c n(x:s)
 |e a=f 1
 |e b=f 2
 |True=f 0
 where
 e y=x`elem`y
 f y=c(n+y)s

c คือฟังก์ชั่น c :: Int -> String -> Intที่ใช้ตัวนับและสตริงและผ่านสตริงหนึ่งตัวอักษรในเวลาที่ตรวจสอบว่าตัวอักษรปัจจุบันเป็นสมาชิกของอาร์เรย์ 1 จุดหรืออาร์เรย์ 2 จุดและเรียกตัวเองว่าส่วนที่เหลือของสตริงหลังจากที่เพิ่มขึ้น เคาน์เตอร์จำนวนที่เหมาะสม

โทรหาเคาน์เตอร์ = 0 ใน ghci:

ghci> c 0 "All your base are belong to us"
12

1

C #, 157

void Main(string s){int v=0;v=s.ToCharArray().Count(c=>{return "#0469@ADOPQRabdegopq".Contains(c)||"$%&8B".Contains(c)?++v is int:false;});Console.Write(v);}

Ungolfed:

void Main(string s)
{
    int v = 0;

    v = s.ToCharArray()
    .Count(c => 
    {
        return "#0469@ADOPQRabdegopq".Contains(c) || "$%&8B".Contains(c) ? ++v is int:false;
    });

    Console.Write(v);
}

การแปลงสตริงให้เป็นอาร์เรย์ถ่านจากนั้นดูว่าถ่านแต่ละตัวอยู่ในตัวนับทั้งสองหรือไม่ ถ้ามันอยู่ในอันที่สองฉันแค่ให้มันเพิ่มจำนวนตัวนับอีกครั้ง


1

Erlang, 103 ไบต์

นี่เป็นโปรแกรมที่สมบูรณ์ที่รันโดยใช้ escript บรรทัดแรกของไฟล์จะต้องว่างเปล่า (เพิ่ม 1 ไบต์)

main([L])->io:write(c(L,"#0469@ADOPQRabdegopq")+2*c(L,"$%&8B")).
c(L,S)->length([X||X<-L,S--[X]/=S]).

วิ่งตัวอย่าง:

$ escript closed.erl 'Shortest answer in bytes is the winner!'
8$

ยินดีต้อนรับสู่ PPCG, c (L, "# 0469 @ ADOPQRabdegopq") + 2 * c (L, "$% & 8B") ยาวกว่า c (L, "# 0469 @ ADOPQRabdegopq $% & 8B $% & 8B") โดย 5 ไบต์ :)
Katenkyo

@ Katyenko ขอบคุณสำหรับคำแนะนำ น่าเสียดายที่มันไม่ทำงานอย่างถูกต้องสำหรับอินพุตบางอย่าง "$% & 8B" นับเป็น 5 แต่ควรเป็น 10 ฟังก์ชั่น c / 2 ทำงานโดยการกรอง chars ของสตริงที่ไม่ได้อยู่ในชุดของ chars เช่น "$% & 8B" มันจะตรวจสอบการรวมชุดโดยการลบถ่านที่จะทดสอบจากชุดจากนั้นเปรียบเทียบผลลัพธ์กับชุดเดิม หากพวกเขาไม่เท่ากันแสดงว่าถ่านอยู่ในชุดและรวมอยู่ด้วย อักขระหลายชุดในชุดไม่มีผลใด ๆ
Edwin Fine

โฮฉันเข้าใจแล้วฉันไม่รู้ erlang กำลังคิดว่าคุณกำลังใช้สตริงเพื่อนับตัวนับ: 3 อย่างไรก็ตามไม่เป็นไรและทำได้ดีมาก :)
Katenkyo

0

C, 99 ไบต์

n;f(char*i){for(char*o="#0469@ADOPQRabdegopq$%&8B",*t=o+20;*i;)n+=2-!strchr(o,*i)-!strchr(t,*i++);}

คำอธิบาย

ฉันเล่นกอล์ฟต่อคำตอบของ Cool Guy ; มันนานเกินไปที่จะแสดงความคิดเห็น แทนที่จะเป็นif/ else, ฉันใช้ประโยชน์จาก!การแปลงตัวชี้เป็นบูล ฉันได้oรวมไว้ด้วยtเพื่อให้ฉันสามารถเพิ่ม "เป็นo" และ "อยู่ในt" สำหรับจำนวนตัวนับทั้งหมด

รหัสขยาย

#include <string.h>
int num = 0;

void f(char* input)
{
    char *one = "#0469@ADOPQRabdegopq"  "$%&8B";
    char *two = strchr(one, '$');

    while (*input) {
        num += 2 - !strchr(one, *input) - !strchr(two, *input));
        ++input;
    }
}

เอาท์พุทเป็นในnumซึ่งจะต้องล้างก่อนการโทรแต่ละครั้ง

ทดสอบโปรแกรมและผลลัพธ์

#include <stdio.h>
int main() {
    const char* a[] = {
        "Programming Puzzles and Code-Golf",
        "4 8 15 16 23 42",
        "All your base are belong to us",
        "Standard loopholes apply",
        "Shortest answer in bytes is the winner!",
        NULL
    };
    for (const char** p = a;  *p;  ++p) {
        n=0;f(*p);
        printf("%3d: %s\n", n, *p);
    }
    return 0;
}
 13: Programming Puzzles and Code-Golf
  5: 4 8 15 16 23 42
 12: All your base are belong to us
 12: Standard loopholes apply
  8: Shortest answer in bytes is the winner!
 37: n;f(char*i){for(char*o="#0469@ADOPQRabdegopq$%&8B",*t=o+20;*i;)n+=2-!strchr(o,*i)-!strchr(t,*i++);}

รหัสตัวเองมี 37 เคาน์เตอร์โดยตัวชี้วัดของตัวเอง

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