คะแนน Scopa ของฉันคืออะไร?


14

ฉันชอบความท้าทายของเกมไพ่ดังนั้นฉันจึงสร้างเกมนี้ขึ้นมาสำหรับเกมการ์ดของอิตาลี Scopa ครอบครัวของฉันเล่นเกมนี้มาตั้งแต่ไหน แต่ไรแล้ว มันมีระบบการให้คะแนนที่น่าสนใจอย่างมากที่ควรเล่นกอล์ฟ ฉันจะโพสต์คำตอบใน R เพื่อเริ่มต้นความสนุกซึ่งฉันมั่นใจว่าผู้คนจะพัฒนาต่อไป

การท้าทาย: หาจำนวนคะแนนที่ทำได้ในรอบของ Scopa โดยให้ไพ่ที่ผู้เล่นยึดระหว่างรอบเป็นอินพุท

มี 40 ใบในสำรับ Scopa หากคุณใช้เด็คสากลคุณสามารถถอด 8s, 9s และ 10s ออกจาก A, 2,3,4,5,6,7, Q, J, K ในแต่ละชุด 1มีผู้เล่นหรือหุ้นส่วนสองคนและทุก ๆ รอบไพ่ทั้งหมดจะถูกยึดโดยผู้เล่นหนึ่งหรือสองคน คะแนนจะถูกนับดังนี้ (ข้อมูลเพิ่มเติมที่นี่ ):

  • ผู้เล่นที่มีมากที่สุด ไพ่ทำคะแนน 1 คะแนน
  • ผู้เล่นที่มีมากที่สุด เพชร (หรือเหรียญถ้าใช้ดาดฟ้าอิตาลี) ได้คะแนน 1 คะแนน
  • ผู้เล่นที่มี7 เพชร (หรือเหรียญ) หรือที่รู้จักกันในชื่อเซ็ตเบลโลหรือเซเว่นที่สวยงามได้คะแนน 1 คะแนน
  • ผู้เล่นที่มีคะแนนสูงสุดของPrimiera 1 คะแนน คะแนนพรีเอเรียของผู้เล่นคือผลรวมของคะแนนของการ์ดมูลค่าสูงสุดที่ผู้เล่นจับในแต่ละชุด (ดูตารางด้านล่าง) หากคุณไม่มีไพ่อย่างน้อยหนึ่งใบในชุดสูทคุณจะเสียตามค่าเริ่มต้นแม้ว่าคะแนนของคุณจะสูงกว่าคะแนนของฝ่ายตรงข้าม ในกรณีที่หายากอย่างยิ่งที่ผู้เล่นทั้งคู่ไม่มีไพ่อย่างน้อยหนึ่งใบในทุกชุดผู้เล่นที่มีคะแนนรวมสูงที่สุดจะได้คะแนน2

ตารางคะแนนพริเมีย

| Rank  | Value |
| ----- | ----- |
| 7     | 21    |
| 6     | 18    |
| A     | 16    |
| 5     | 15    |
| 4     | 14    |
| 3     | 13    |
| 2     | 12    |
| Q,J,K | 10    |

ดังนั้นผู้เล่นสามารถทำคะแนนได้มากที่สุด 4 คะแนนในรอบ 3หากมีการเสมอกันซึ่งเป็นไปได้สำหรับไพ่เพชรหรือพริเมเรียไม่มีใครทำคะแนน

สิ่งสำคัญคือต้องตระหนักว่าเนื่องจากการ์ดแต่ละใบต้องมีผู้เล่นหนึ่งในสองผู้เล่นคุณสามารถอนุมานได้ว่าการ์ดใดที่ผู้เล่นคนอื่นจะต้องได้รับแม้ว่าคุณจะรู้ว่าการ์ดใดที่ผู้เล่นคนหนึ่งเอามา คุณจะต้องทำเช่นนี้ได้อย่างถูกต้องคะแนนprimiera

กฏท้าทาย

อินพุต

รหัสของคุณควรใช้เป็นอินพุตการ์ดที่ผู้เล่นคนเดียวจับในระหว่างรอบ Scopa

อินพุตต้องอยู่ในรูปแบบสตริงซึ่งอักขระหนึ่งตัวจะแทนอันดับของการ์ดแต่ละใบและอักขระหนึ่งตัวที่เหมาะสม นี้จะเอาช่องโหว่ที่อาจเกิดขึ้นจากที่ผ่านการ primieraคะแนนโดยตรงเป็น input การแปลงอันดับของการ์ดเป็นคะแนนพรีเลียราจะต้องทำในโปรแกรม อย่างไรก็ตามคุณอาจเลือกที่จะใช้สตริงเดียวคั่นด้วยช่องว่างหรือเครื่องหมายจุลภาคอาร์เรย์ของสตริงหรือรูปแบบอื่น ๆ ตัวอย่างเช่นหากคุณเลือกที่จะเข้ารหัสอันดับ76A5432QJKและเหมาะสมที่สุดเท่าที่DCHSคุณจะสามารถใช้อินพุตเช่น['7D', '6H', 'QD', 'JS']'7D,6H,QD,JS'หรือ

เอาท์พุต

จำนวนเต็มตั้งแต่ 0 ถึง 4 แสดงถึงคะแนนของผู้เล่น

การชนะ

คำตอบที่สั้นที่สุดในการชนะไบต์!

กรณีทดสอบ

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]

คะแนน 4 : 1 คะแนนสำหรับ> 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชรและ 1 คะแนนสำหรับการให้คะแนน 78 ในพรีมีรา (7,7,7,5 ที่ฝ่ายตรงข้ามมี 7,6,5, K สำหรับ 64)

["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]

คะแนน 0 : <= 20 ใบ, <= 5 เพชร, 7 เพชรไม่มี, และคะแนนเพียง 69 คะแนนในอันดับแรก (7,7,4,3 ที่ฝ่ายตรงข้ามมี 7,7,6, K สำหรับ 70)

[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]

คะแนน 3 : 1 คะแนนสำหรับ> 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร primieraจะ 63 (7,7,7) และฝ่ายตรงข้ามเท่านั้นที่สามารถทำคะแนนได้ 51 (7, Q, Q, Q) แต่เนื่องจากมือนี้จะไม่มีจอบจะสูญเสียจุดโดยค่าเริ่มต้น

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]

คะแนน 3 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร พรีมิเลียเพียง 51 คะแนน (7, Q, Q, Q) และฝ่ายตรงข้ามสามารถทำคะแนน 63 (7,7,7) ได้ แต่เนื่องจากมือของคู่ต่อสู้ไม่มีเพชรในมือนี้จะชนะคะแนนพรีเอรา

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]

คะแนน 3 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร แม้ว่ามือนี้จะไม่มีพลั่วแต่ก็ยังชนะได้ในระดับ Primiaด้วยคะแนน 63 ถึง 57 (7,7,7 เมื่อเทียบกับ 7,6,6) เพราะมือของฝ่ายตรงข้ามไม่มีเพชร

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]

คะแนน 2 : <= 20 ใบ, 1 คะแนนสำหรับ> 5 เพชร, 1 คะแนนสำหรับ 7 เพชร มือนี้ไม่มีพลั่วและมือของฝ่ายตรงข้ามไม่มีเพชร ฝ่ายตรงข้ามชนะPrimieraด้วยคะแนน 63 ถึง 41 (7,7,7 เมื่อเทียบกับ 7, Q, Q)

[] (อาร์เรย์ที่ว่างเปล่า)

คะแนน 0


1: อย่างน้อยในครอบครัวของเราแจ็คอยู่เหนือกว่า Queen in Scopa แต่นี่ไม่เกี่ยวข้องกับการทำประตู

2: ฉันเล่นเกมนี้มาตั้งแต่เด็กและไม่เคยเห็นสิ่งนี้เกิดขึ้น แต่รหัสของคุณดีกว่าที่จะสามารถจัดการกับกรณีนี้ได้!

3: มีคะแนนโบนัสสำหรับ "sweeps" ที่ทำคะแนนในรอบที่ฉันไม่สนใจจุดประสงค์ของการท้าทายนี้


1
แต่ละอันดับจะต้องมีตัวละครที่แตกต่างกันหรือไม่?
Doorknob

@Doorknob ไม่จำเป็น แต่อย่างน้อยในการแก้ปัญหาที่ฉันทำงานฉันพบว่ามันจำเป็นที่จะต้องมีตัวละครที่ไม่ซ้ำกันสำหรับแต่ละอันดับเพื่อให้ได้รับทุกกรณีการทดสอบที่ถูกต้อง
qdread

@Grimy จับที่ดี ขอบคุณ
qdread

คำตอบ:


6

ทับทิม, 156 153 ไบต์

->a{b='';([a[40],a.scan(/.d/)[5],a=~/;d/,'dchs'.gsub(/./){l=a.scan /.(?=#$&)/;l.size<10&&b+=(';865432'.tr(l*'','')+?0)[0];l.max}.sum>b.sum||p]-[p]).size}

ลองออนไลน์!

->a{
b='';                # stores primiera of other player
([                   # this array stores all checks
a[40],               # check if >20 cards (>40 characters)
a.scan(/.d/)[5],     # check if >5 diamonds
a=~/;d/,             # check if 7 of diamonds
'dchs'.gsub(/./){    # for each suit, build a string with...
l=a.scan /.(?=#$&)/; # find all cards with this suit
l.size<10&&          # if there are less than 10, the other person has some, so
b+=                  # append to their score string the following:
(';865432'           #   start with all the cards
.tr(l*'','')         #   remove the ones we have
+?0)                 #   add back the JQK at the end
[0];                 #   take the highest
l.max}               # return the highest card that we have
.sum                 # take the sum of the codepoints
>b.sum               # check if it's greater than the other player's sum
||p                  # if not, evaluate to nil
]-[p])               # remove all nils
.size}               # count how many are left

สิ่งนี้ใช้;865432000เพื่อเป็นตัวแทน76A5432QJKตามลำดับและชุดสูทเป็นตัวพิมพ์เล็ก (ตัวเลือกของตัวละครเป็นเพราะการลบ 38 ตัวจากแต่ละตัวให้คุณค่าของตัวละครเอก แต่เราไม่เคยทำเช่นนั้นเพราะความแตกต่างสัมพัทธ์มีความสำคัญเท่านั้น)

เราไม่ตรวจสอบว่าผู้เล่นคนใดขาดชุดเพราะไม่จำเป็น - เนื่องจากไพ่ทั้งหมดถูกนับเป็น 38 บวกกับมูลค่าจริงของพวกเขาหากมีคนหายไปชุดสูทคะแนนสูงสุดที่พวกเขาจะได้รับคือ (21 + 38) * 3 = 177, ซึ่งน้อยกว่า (10 + 38) * 3 + 21 + 38 = 203, คะแนนต่ำสุดที่ผู้เล่นคนอื่นจะได้รับ เราไม่สามารถให้ผู้เล่นสองคนขาดจำนวนชุดที่ไม่เป็นศูนย์ที่ไม่เท่ากันเนื่องจากผู้เล่นสามารถหายไปได้เพียง 0, 1 หรือ 2 ชุดและถ้ามีคนหายไป 2 ชุดพวกเขามีไพ่ทั้งหมดอีก 2 ชุด


4

R, 320 298 265 238 229 224 211 209 179 ไบต์

นี่เป็นวิธีการแก้ปัญหาส่วนใหญ่เนื่องจาก @digEmAll ในรูปแบบของฟังก์ชั่น

ลองออนไลน์!

function(h,S=sum,A=apply,l=99+c(11,8,5:2,6,!1:3)%o%!!1:4)S(S(p<-outer(c(7:2,'A','K','J','Q'),c('D','C','H','S'),paste0)%in%h)>20,S(p[1:10])>5,p[1],S(A(l*p,2,max)-A(l*!p,2,max))>0)

ด้านล่างเป็นสิ่งที่ดีที่สุดของความพยายามแบบเก่า ๆ ของฉันที่มีขนาด 209 ไบต์

แก้ไข: เลื่อนลงโดยใช้นามแฝงบางฟังก์ชั่นจากนั้นจึงนำแนวคิดของ Doorknob ไปเพิ่มคะแนนคงที่แทนที่จะตรวจสอบชุดสูท

การแก้ไขต่อไป: กำจัดความซ้ำซ้อนบางส่วนแล้วรวมการปรับปรุงบางอย่างจาก Giuseppe

แก้ไขต่อไป: -2 ไบต์ขอบคุณ digEmAll

ฉันกลัวมากในเรื่องนี้ดังนั้นฉันมั่นใจว่าบางคนสามารถปรับปรุงเรื่องนี้ได้หากพวกเขาสนใจที่จะใช้เวลา ฉันรู้สึกเหมือนsapplyและfunctionยาวมากและสามารถกำจัดพวกเขาได้ แต่ฉันไม่สามารถหาวิธีได้ อินพุตเป็นสตริงสองอักขระในสัญกรณ์มาตรฐาน

function(h,s=sum,l=c(11,8,5:2,6,!1:3)+99)s(length(h)>20,s(grepl('D',h))>5,'7D'%in%h,s(sapply(c('D','C','H','S'),function(i,r=c(7:2,'A','K','J','Q')%in%substr(h[grep(i,h)],1,1))s(l[r][1],-l[!r][1],na.rm=T)))>0)

1
คุณอาจได้รับความช่วยเหลือในห้องแชทกอล์ฟ R digEmAll ยังเป็นเพื่อนร่วมทางของอิตาลี!
Giuseppe

1
เพียงแค่คำแนะนำบางอย่าง แต่ถ้าคุณสามารถสลับเซมิโคลอนเพียงแค่ขึ้นบรรทัดใหม่ (ซึ่งดูเหมือนว่าจะเป็นหนึ่งไบต์ใน R) มันเป็นการแลกเปลี่ยนฟรีที่ทำให้คำตอบของคุณอ่านง่ายขึ้น นอกจากนี้ให้ลองใช้งาน Try It Onlineซึ่งเป็นรหัสรันโค้ดออนไลน์หากคุณยังไม่มี ไม่จำเป็น แต่ดีอีกครั้งที่จะใช้ มันยังสามารถสร้างโพสต์
CGCC

1
253 ไบต์ - ฉันไม่แน่ใจว่าสิ่งนี้จะได้ผลเพราะฉันพยายามเล่นกอล์ฟตามปกติเป็นส่วนใหญ่ แต่อย่าลังเลที่จะทดสอบและแจ้งให้ฉันทราบ
Giuseppe



2

JavaScript (ES6),  171  163 ไบต์

ใช้อินพุตเป็นชุดของการ์ดโดยใช้การแทนค่ามาตรฐาน

c=>(c.size>20)+((g=o=>[..."CHSD"].map(s=>[..."JQK2345A67"].map((v,i)=>(S=o^c.has(v+s))?m="111345679"[++n,i]||12:0,n=m=0)|(n?0:T=1,t-=m),T=t=4)|t*T)(1)>g``)+S+(n>5)

ลองออนไลน์!

แสดงความคิดเห็น

c =>                                // c = set of cards
  (c.size > 20) + (                 // +1 point if we have more than 20 cards
    ( g = o =>                      // g is a function taking the flag o (for 'opponent')
      [..."CHSD"].map(s =>          // for each suit s, ending with diamonds:
        [..."JQK2345A67"]           //   for each rank v at position i, sorted from
        .map((v, i) =>              //   lowest to highest primiera score:
          (S = o ^ c.has(v + s)) ?  //     if the player owns this card, set S to 1 and:
            m = "111345679"[++n, i] //       increment n; update m to the score of this
                || 12               //       rank (we use the official score - 9)
          :                         //     else:
            0,                      //       do nothing
          n = m = 0                 //     start with n = m = 0
        ) |                         //   end of inner map()
        ( n ? 0 : T = 1,            //   if n = 0, set T to 1
          t -= m ),                 //   subtract m from t
        T = t = 4                   //   start with T = t = 4
      ) | t * T                     // end of outer map(); yield t * T
    )(1) > g``                      // +1 point if g(1) is greater than g(0)
  ) +                               // (we test this way because the scores are negative)
  S +                               // +1 point if we own the 7 of diamonds
  (n > 5)                           // +1 point if we own more than 5 diamonds

2

05AB1E , 41 ไบต์

39ÝsK‚εg9y@Oy0å•Dδ¿m(/d•₆вy.γT÷}è€àO)}`›O

ลองมันออนไลน์หรือตรวจสอบกรณีทดสอบทั้งหมด

ชุดจะแสดงตามลำดับDCHS 0123อันดับ7A65432KJQจะแสดงตามลำดับโดย0123456789จะแสดงตามลำดับสิ่งเหล่านี้ถูกนำมาเป็นสตริงไม่ใช่จำนวนเต็มตามที่ความท้าทายร้องขอ (แต่จากนั้น 05AB1E จะแปลงเป็นจำนวนเต็มเมื่อจำเป็น)

เช่นเดียวกับในโซลูชันอื่น ๆ เราเพิ่มค่าคงที่ขนาดใหญ่ (14) ให้กับแต่ละคะแนนของ Primiera เพื่อทำการตรวจสอบชุดที่ขาดหายไปโดยไม่จำเป็น

39Ý                      # range 0..39 (the list of all cards in the game)
   sK                    # remove all elements that appear in the input
      ‚                  # pair with the input: [player's hand, opponent's hand]

ε                     }  # map each hand to a list of its 4 subscores:
 g                       #  first subscore: length (number of cards)
 9y@O                    #  second subscore: count elements <= 9 (diamonds)
 y0å                     #  third subscore: is 0 (representing 7D) in the list
            y.γT÷}       #  group the hand by suit
 •Dδ¿m(/d•₆в      è      #  map each rank to its primiera score
                   ۈ    #  maximum primiera score in each suit
                     O   #  fourth subscore: the sum of those

`›                       # for each subscore: is player's > opponent's?
  O                      # sum
```

2

MS SQL Server 2017 , 525 ไบต์

CREATE FUNCTION f(@ NVARCHAR(MAX))RETURNS TABLE RETURN
SELECT q/21+IIF(d>6,2,IIF(d=6,1,0))+IIF(m=0,IIF(n=0 AND a>b,1,0),IIF(n=0 OR a>b,1,0))p
FROM(SELECT SUM(q)q,MAX(IIF(s='D',q,0))d,SUM(a)a,MIN(q)m,SUM(b)b,MIN(10-q)n
FROM(SELECT s,COUNT(k)q,MAX(IIF(r=k,v,0))a,MAX(IIF(r=k,0,v))b
FROM(SELECT LEFT(value,1)r,s,ASCII(RIGHT(value,1))-38 v
FROM STRING_SPLIT('7;,68,A6,5,4,3,2,Q0,J0,K0',','),(VALUES('D'),('C'),('H'),('S'))s(s))d
LEFT JOIN(SELECT LEFT(value,1)k,RIGHT(value,1)u FROM STRING_SPLIT(@,','))a
ON r+s=k+u GROUP BY s)t)t

ลองบนฐานข้อมูล <> ซอ


1

เรติน่า 0.8.2 , 334 ไบต์

$
 ¶234567JQKA
r`.\G
$&C $&D $&H $&S 
+`((\w\w).*¶.*)\2 
$1
T`67AJQK`8960
%O$`(\w)(\w)
$2$1
m`^(?=(...)*)(.C )*(.D )*(.H )*(.S )*
$3;$#1 $#2 $#3 $#4 $#5;${2}${3}${4}$5
m`^(?=(9D))?...;
$#1;
(;(?!.*10).* 0.*;).*
$1
\d[C-S] 
1$&
19\w 
21$*@
\d+(\w )?
$*@
(@)?;(@*) @* (@*).*;(@*)¶@?;((?!\2))?@* @* ((?!\3))?.*;((?!\4))?.*
$#1$#5$#6$#7
1

ลองออนไลน์! ลิงก์มีกรณีทดสอบ คำอธิบาย:

$
 ¶234567JQKA
r`.\G
$&C $&D $&H $&S 

สร้างรายการทั้งหมด 40 บัตร

+`((\w\w).*¶.*)\2 
$1

นำการ์ดที่ผู้เล่นถือออก

T`67AJQK`8960

แทนที่แต่ละอันดับตามลำดับการเรียงซึ่งคือ 9 สำหรับ7และ 10 น้อยกว่าค่าของการ์ดอื่น ๆ

%O$`(\w)(\w)
$2$1

เรียงไพ่ตามความเหมาะสมและอันดับ

m`^(?=(...)*)(.C )*(.D )*(.H )*(.S )*
$3;$#1 $#2 $#3 $#4 $#5;${2}${3}${4}$5

นับจำนวนไพ่ในแต่ละชุดและยังจับไพ่ที่มีอันดับสูงสุดในแต่ละชุดจับเพชรที่สูงที่สุดสองครั้ง

m`^(?=(9D))?...;
$#1;

ตรวจสอบว่าเพชรที่สูงที่สุดคือ 7

(;(?!.*10).* 0.*;).*
$1

ลบไพ่สูงสุดทั้งหมดหากไพ่ใบใดใบหนึ่งไม่มีไพ่

\d[C-S] 
1$&
19\w 
21$*@
\d+(\w )?
$*@

แปลงไพ่สูงสุดให้เป็นคะแนนรวมและรวมเข้าด้วยกัน ยังแปลงจำนวนรวมของการ์ดและความยาวที่เหมาะสมเป็น unary

(@)?;(@*) @* (@*).*;(@*)¶@?;((?!\2))?@* @* ((?!\3))?.*;((?!\4))?.*
$#1$#5$#6$#7

คะแนนคะแนนหากคะแนนรวมทั้งหมดเพชรหรือพรีมีราสูงกว่า

1

รวมคะแนน



1

AWK , 235 ไบต์

{s[9]=35;s[8]=32;s[7]=30;s[6]=29;s[5]=28;s[4]=27;s[3]=26;s[2]=s[1]=s[0]=24;a[$1 $2]=s[$1]}END{while(i++<4){D=0;for(j=0;j<10;j++){if(a[j i]<1){B[i]=s[j];D++}if(A[i]<a[j i])A[i]=a[j i]}x+=A[i];y+=B[i]}print(20<NR)+(D<5)+(1<a[9 4])+(y<x)}

ลองออนไลน์!

เหมาะกับแผนที่ 1234 (4 เป็นเพชร) ค่าแผนที่เป็น 0123456789 โปรแกรมนี้เปลี่ยนรูปแบบการทดสอบเป็นรูปแบบที่ยอมรับ:

BEGIN{RS=", ";FS="";t[7]=9;t[6]=8;t["A"]=7;t[5]=6;t[4]=5;t[3]=4;t[2]=3;t["Q"]=2;t["J"]=1;t["K"]=0;u["D"]=4;u["C"]=1;u["H"]=2;u["S"]=3}{gsub("[\\[\"\\]]","",$0);print t[$1],u[$2]}

เป้าหมายของฉันคือการเอาชนะการนำ Python ไปใช้: D


1

Python 3 , 249 245 239 238 ไบต์

-4 ไบต์ขอบคุณ @ovs

-6 ไบต์ขอบคุณ @movatica

lambda C:sum([len(C)>20,'7D'in C,len([c for c in C if'E'>c[1]])>5,p(C)>p({n+s for n in'9876543210'for s in S}-C)])
p=lambda C:[not S.strip(''.join(C)),sum(max([(c[1]==s)*int('9gcdefil99'[int(c[0])],22)for c in C]+[0])for s in S)]
S='DcHS'

ลองออนไลน์!


1
2 ไบต์น้อยลงด้วยint('0734569c00'[int(x[0])],13)และif x[1]<'E'สามารถเขียนเป็นif'E'>x[1]
OVS

all(s in''.join(C)for s in S)สามารถย่อให้not S.strip(''.join(C))เล็กสุดประหยัดได้ 6 ไบต์
movatica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.