ค้นหาคำที่เป็นคลื่น!


18

(หมายเหตุ: นี่คือการปั่นง่ายขึ้นของความท้าทายของฉันก่อนหน้าค้นหา Infinity คำ!ซึ่งเป็นสปินออกของความท้าทายก่อนหน้าอื่น ๆ ของฉันค้นหาหมุนคำ! :))

คำจำกัดความของคำหยัก :

  1. หากคุณเชื่อมต่อกับเส้นโค้งทุกตัวอักษรของWavy Wordบนตัวอักษร (AZ) คุณจะได้รับเส้นทางของคลื่นอย่างต่อเนื่องไปทางขวาหรือไปทางซ้ายและไม่เคยเปลี่ยนทิศทางเช่นในแผนภาพด้านล่าง
  2. หยักของ Wordสามารถ:
    • การเพิ่มหากอักขระต่อเนื่องแต่ละตัวอยู่ทางขวา (ตัวอักษร) ของอักขระก่อนหน้า
    • ลดลงถ้าอักขระต่อเนื่องแต่ละตัวอยู่ทางซ้าย (ตัวอักษร) ของอักขระก่อนหน้า
  3. การเชื่อมต่อที่สม่ำเสมอทั้งหมดจะต้องหยุดทำงานการเชื่อมต่อคี่ทั้งหมดต้องขึ้น
  4. คุณสามารถละเว้นตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กหรือพิจารณา / แปลงทั้งหมดเป็นตัวพิมพ์ใหญ่หรือทั้งหมดเป็นตัวพิมพ์เล็ก
  5. คำที่ป้อนเป็นอักขระในช่วงตัวอักษรของ AZ ไม่มีช่องว่างไม่มีเครื่องหมายวรรคตอนหรือสัญลักษณ์
  6. หากคำที่มีตัวอักษรคู่เช่น "SPOON" คุณจะต้องยุบคู่เป็นหนึ่งตัว: "SPOON"> "SPON" (เพราะถ้าคุณไปจาก O ถึง O เป็นระยะทางศูนย์)
  7. หยักคำจะมีอย่างน้อย 3 ตัวอักษรที่แตกต่างกัน (แม้หลังจากที่คู่ยุบ)

นี่คือตัวอย่างบางส่วน:

ป้อนคำอธิบายรูปภาพที่นี่

งาน:

เขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่จะนำคำจากอินพุตมาตรฐานและส่งออกจะถ้ามันเป็นหยักของ Wordหรือไม่และในกรณีที่เป็นบวกออกหากมีการเพิ่มหรือลดลง เอาท์พุทสามารถTrue/False/Null, 2/1/0, 1/Null/0, -1/0/1, NO/WR/WDฯลฯ คุณตัดสินใจว่าจะเป็นตัวแทน

กรณีทดสอบ:

WAVY WORDS:
  ADEPT, BEGIN, BILL, BOSS, BOOST, CHIMP,
  KNOW, SPONGE, SPOON, TROLL, WOLF  

ADEPT  > YES > RAISING
BEGIN  > YES > RAISING
BILL   > YES > RAISING
BOSS   > YES > RAISING
BOOST  > YES > RAISING
CHIMP  > YES > RAISING
KNOW   > YES > RAISING
SPONGE > YES > DECREASING
SPOON  > YES > DECREASING
TROLL  > YES > DECREASING
WOLF   > YES > DECREASING

NOT WAVY WORDS:
  WATCH, EARTH, NINON, FOO, BAR, WAVE, SELECTION,
  YES, NO, DEFINITION, WATER, WINE, CODE, AAAHHHH, I, MM, ABCA

กฎ:

  • รหัสที่สั้นที่สุดชนะ

ภารกิจเสริม:

ค้นหารายการคำให้มากที่สุดเท่าที่จะทำได้ในพจนานุกรมภาษาอังกฤษและที่ยาวที่สุดเช่นกัน คุณสามารถใช้ตัวอย่างเป็นข้อมูลอ้างอิงรายการสินค้าทั้งหมดของคำภาษาอังกฤษที่นี่


คุณสร้างรูปได้อย่างไร?
Oliver Ni

@Oliver With Illustrator เพราะฉันมีไว้ให้ทำงาน แต่เป็นไปได้ที่จะได้ผลลัพธ์ที่คล้ายกันกับ Gimp หรือ Inkskape หรืออื่น ๆ
มาริโอ

NOและFOOอินพุตไม่ถูกต้องตามกฎของคุณ
PurkkaKoodari

1
@ Pietu1998 พวกเขาอยู่ในNOT WAVY WORDSส่วนที่ถูกต้อง ..
Kade

1
@xnor # 5 คุณสามารถสันนิษฐานว่าคำที่ป้อนทั้งหมดเป็นไปตามที่อธิบายไว้ไม่จำเป็นต้องตรวจสอบความถูกต้อง # 7 นี่คือจำนวนตัวอักษรขั้นต่ำที่จะทำให้รูปร่างคลื่น สำหรับส่วนที่เหลือให้คุณเลือกเอาท์พุทตามที่คุณต้องการ
มาริโอ

คำตอบ:


6

05AB1E , 11 9 ไบต์ (ขอบคุณ Adnan)

Dg2›iÇü‹Ù

ลองออนไลน์!

กรณีหยัก:

0 - การลดลงของคลื่น

1 - การเพิ่มหยัก

ไม่ใช่กรณีหยัก:

[0,1] - ไม่เป็นหยักในตอนแรกลดลง แต่ก็มีการเพิ่ม / ความเท่าเทียมที่ทำลายรูปแบบ

[1,0] - ไม่ใช่หยักเพิ่มขึ้นในขั้นต้น แต่แล้วก็มีการลดลง / ความเสมอภาคที่ทำลายรูปแบบ

อินพุตสตริง - เป็นไปไม่ได้ที่จะเป็นคลื่นตั้งแต่แรกเนื่องจากความยาว

คำอธิบาย:

Dg2›iÇü‹Ù   # Full program

D           # Push 2 copies of input.
 g2›i       # If length is greater than 2. 
     Ç      # Push ASCII values for all characters in the string.
      ü     # Push pairwise array.
       ‹    # Vectorize 1 if negative difference, 0 if positive difference.
        Ù   # Uniquify using right most unique values first.
            # Else just print the string back, letting them know it's not valid input.

1
@JanathanAllan Dangit ... ฉันเพิ่งเห็นความคิดเห็นและการเปลี่ยนแปลง ... ฉันThe input words will contain at least 3 distinct charactersหมายถึงว่าฉันไม่ต้องจัดการกับคำที่ไม่ถึง 3 คำ การทำงานกับการเปลี่ยนแปลงอาจใช้เวลาสักครู่ นี่เป็นคำตอบแรกของฉันที่ฉันสามารถทำได้ใน 05AB1E
Magic Octopus Urn

1
@JonathanAllan แก้ไข :)! แต่ตอนนี้คุณกำลังตีฉัน;)
Magic Octopus Urn

1
ดีมาก! หนึ่งเคล็ดลับü‹เหมือนกับü-0‹:)
Adnan

ฮิฮิ ... ชายฉันอาจต้องเรียนรู้หลามและเริ่มช่วยขยาย 05AB1E ภาษานี้น่าประทับใจ ขอบคุณสำหรับทิป!
Magic Octopus Urn

5

เยลลี่ 10 ไบต์

OIṠḟ0µL’aQ

TryItOnline! หรือเรียกใช้กรณีทดสอบทั้งหมด

ผลตอบแทน:
[1]สำหรับหยักเพิ่มขึ้น
[-1]ลดหยัก
อย่างอื่นเป็นอย่างอื่น ( [], [0], [-1,1]หรือ[1,-1])

(ประกาศเป็นที่ไม่จำเป็น: สำหรับค่าเดียวสำหรับแต่ละOIṠḟ0µL’aQS(11 bytes) จะกลับมา1, -1และ0ตามลำดับ.)

อย่างไร?

OIṠḟ0µL’aQ - Main link: s
O          - cast to ordinals
 I         - incremental differences
  Ṡ        - sign (-1 for decreasing, 0 for no change, 1 for increasing)
   ḟ0      - filter out zeros
     µ     - monadic chain separation
      L    - length
       ’   - decremented
        a  - and
         Q - unique items

คุณได้รับอนุญาตให้มีเอาต์พุตที่แตกต่างกัน 3 แบบสำหรับทั้งสองกรณีหรือไม่?
xnor

ฉันเอา "คุณตัดสินใจว่าจะเป็นตัวแทนของมัน" เพื่อหมายถึงใช่ตราบใดที่พวกเขาแตกต่างกัน อย่างไรก็ตามคำถามของคุณเกี่ยวกับกฎ # 5 สามารถทำให้สิ่งนี้เป็นโมฆะ (และอาจเป็นรายการอื่น ๆ ทั้งหมด)
Jonathan Allan

เพิ่มวิธีแก้ปัญหาให้ถ้าจำเป็นต้องเป็น
Jonathan Allan

คุณไม่สามารถรวมรายการได้หรือไม่
xnor

โอ้ใช่แน่นอน> _ <ขอบคุณ
Jonathan Allan

3

Python 2, 54 ไบต์

lambda s:[2<len(set(s))<s[::b]==sorted(s)for b in-1,1]

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

[False, True] for ascending
[True, False] for descending
[False, False] for neither

ตรวจสอบว่าสตริงอินพุตเรียงลำดับเท่ากับของเดิมหรือย้อนกลับ ทำได้โดยการตัดด้วยขนาดขั้นตอนที่ 1 และ -1 ในเวลาเดียวกันเราตรวจสอบว่าคำนั้นมีตัวอักษรต่างกันอย่างน้อย 2 ตัว

หาก "exit with error" สามารถใช้เอาต์พุตสำหรับทั้งสองกรณีเราสามารถลงไปที่ 51 ไบต์:

lambda s:[s,s[::-(len(set(s))>2)]].index(sorted(s))

ค่อนข้างแน่ใจว่าคุณสามารถรับรายการอักขระได้เนื่องจากไม่ได้ระบุเป็นสตริง: meta.codegolf.stackexchange.com/a/2216/8478
Jonathan Allan

3

Python 3, 77 75 ไบต์

lambda x:(len(set(x))>2)*(list(x)==sorted(x)or(list(x)==sorted(x)[::-1])*2)

ถือว่าตัวอักษรทั้งหมดเป็นตัวเดียวกัน

ผลตอบแทน:

  • 0 ถ้าไม่เป็นหยัก
  • 1 ถ้าไปข้างหน้าหยัก
  • 2 ถ้าย้อนกลับเป็นคลื่น

ลบช่องว่างที่ไม่จำเป็นออกไปขอบคุณ @ETHproductions


2
ยินดีต้อนรับสู่ PPCG และคำตอบแรกที่ดี! อย่างไรก็ตามคุณต้องตรวจสอบให้แน่ใจว่ามีอย่างน้อยสามตัวอักษรที่แตกต่างกันในสตริง; ถ้าไม่มันไม่ใช่คำที่เป็นคลื่นไม่ว่าจะเกิดอะไรขึ้น
ETHproductions

อ่าใช่มั้ย ควรดูความหมายของคำที่เป็นคลื่น แก้ไขแล้ว.
C. Smith

ดี! ฉันไม่ได้เป็นผู้เชี่ยวชาญหลาม แต่ฉันคิดว่าorคุณสามารถเอาพื้นที่ที่ด้านข้างของทั้งสอง
ETHproductions

ใช่คุณพูดถูก ลืมที่จะลบออกหลังจากล้อมรอบนิพจน์ด้วยเครื่องหมายวงเล็บ ขอบคุณสำหรับการจับ!
C. Smith

3

R, 96 95 ไบต์

function(x,d=diff(rle(utf8ToInt(x))$v))if(any(d>0)&any(d<0)|sum(1|d)<2)3 else`if`(all(d<1),2,1)

ผลตอบแทน:

  • 1 สำหรับหยักและเพิ่ม
  • 2 สำหรับหยักและลดลง
  • 3 สำหรับที่ไม่ใช่หยัก

อธิบาย

  • d=diff(rle(utf8ToInt(x))$v): สร้างตัวแปรdโดยแปลงสตริงเป็นASCIIค่าของมันโดยใช้ค่าutf8ToIntที่ส่งคืนเวกเตอร์ rleต่อจากนั้นดำเนินการเข้ารหัสทำงานโดยใช้ความยาว rle(...)$vส่งคืนค่าที่ไม่ซ้ำของลำดับ (เช่นการยุบการรันทั้งหมด) ในที่สุดนำความแตกต่าง
  • if(any(d>0)&any(d<0)|sum(1|d)<2)3: หากความแตกต่างอย่างน้อยหนึ่งรายการเป็นค่าบวกและอย่างน้อยหนึ่งค่าลบหรือหากลำดับความแตกต่างมี2องค์ประกอบน้อยกว่า(เทียบเท่ากับคำเดิมที่มีอักขระน้อยกว่า 3 ตัว) คำนั้นจะไม่เป็นคลื่นและกลับมา3
  • else``if``(all(d<1),2,1): 2มิฉะนั้นถ้าความแตกต่างทั้งหมดเป็นค่าลบให้ผลตอบแทนแบบเป็นหยักและลดลงผลตอบแทนแบบอื่นจะ1เป็นแบบหยักและเพิ่มขึ้น

ลองกรณีทดสอบทั้งหมดที่R-fiddle (โปรดทราบว่าชื่อนั้นมีความสามารถในการเวกเตอร์สำหรับกรณีทดสอบ)


3

JavaScript (ES6), 84 81 ไบต์

s=>(new Set(t=[...s]).size>2)*(!t.some((c,i)=>c>s[i+1])-!t.some((c,i)=>c<s[i+1]))

สมมติว่าอินพุตมีทั้งหมดในกรณีเดียวกัน ผลตอบแทน1สำหรับการเพิ่มหยัก-1สำหรับลดหยัก0หรือ-0(ทั้งคู่เป็นเท็จ) สำหรับไม่หยัก แก้ไข: บันทึกแล้ว 3 ไบต์ขอบคุณ @RobertHickman


ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับคุณสมบัติใหม่กว่านี้ แต่คุณสามารถลบได้newหรือไม่
Cyoce

@Cyoce น่ารำคาญคุณต้องใช้คุณสมบัติใหม่กว่าnewนี้
Neil

@ Neil ฉันเชื่อว่าคุณสามารถบันทึก byte โดยเริ่มต้นตัวแปรอื่นภายในฟังก์ชั่น Set () t=[...s]และใช้ t แทน [... s] ในจุดสองจุดที่คุณมี
Robert Hickman

3

Javascript (ES6), 84 80 78 ไบต์

i=>new Set(s=[...i]).size>2?[i,s.reverse().join``].indexOf(s.sort().join``):-1

เมื่อคลื่นเพิ่มขึ้นเป็น 0 การลดลงคือ 1 และ -1 ไม่เป็นคลื่น

ขอบคุณ@Neil ที่ช่วยฉันประหยัด 2 ไบต์


1
new Set(s=[...i])ช่วยให้คุณ 2 ไบต์ (มันทำงานโดยการวนซ้ำiเปลี่ยนเป็นอาร์เรย์วนซ้ำและเปลี่ยนมันเป็นเซตซับซ้อน แต่คุณไม่ต้องกังวลเกี่ยวกับสิ่งนั้นเมื่อคุณเล่นกอล์ฟ)
Neil


2

Python 2, 53 52 50 ไบต์

คาดว่าอินพุตจะอยู่ในเครื่องหมายคำพูดเช่น "watch"

ในฐานะแลมบ์ดาที่ไม่มีชื่อ:

lambda s:(sum(map(cmp,s[1:],s))+1)/min(len(s)-1,3)

len-1สรุปสัญญาณของความแตกต่างระหว่างแต่ละตัวอักษรและจำนวนเต็มแบ่งโดย ถ้าทุกคน1(เพิ่มขึ้น) รวมเป็นlen-1มันแสดง1คล้ายการลด-1และผสม1, -1ผลรวมมีขนาดเล็กกว่าจึงแสดงlen-10

-1 ไบต์สำหรับการเปลี่ยนcmp,s[1:],s[:-1])เป็นcmp,s[1:],s)+1


จะกลับมา1สำหรับ"NO"
Jonathan Allan

@JanathanAllan LMNOPดังนั้น O คือหลังจาก N ซึ่งหมายถึงการเพิ่มขึ้นซึ่งหมายถึง 1
Karl Napf

ใช่ แต่คำใด ๆ ที่น้อยกว่า 3 ตัวอักษร (หลังจากลบตัวอักษรใด ๆ ที่ซ้ำกัน) ถูกกำหนดเป็นไม่หยัก ("NO" อยู่ในกรณีทดสอบที่ไม่เป็นคลื่น)
Jonathan Allan

@JanathanAllan แก้ไขlenปัญหา แต่ฉันตัวอักษรที่ซ้ำกันยังคงมีปัญหา
Karl Napf

2

Ruby, 54 ไบต์

->w{c=w.chars.uniq;c==(s=c.sort)?2:(c==s.reverse)?1:0}

ส่งคืน0ถ้าคำไม่เป็นคลื่น1ถ้าเป็นหยักไปข้างหลังและ2ถ้าเป็นคลื่น


2

Groovy - 56 ไบต์

{d = มัน [0]; c = [0] * 3; it.each {a-> ค [(ก <=> d)] = 1; d = a} ค [1 ..- 1]}

เอาท์พุท[1,0]สำหรับการเพิ่มคลื่น[0,1]สำหรับลดคลื่น[0,0]สำหรับอินพุตอักขระเดี่ยวหรือ[1,1]ไม่เป็นคลื่น

หมายเหตุ:สมมติว่าการป้อนข้อมูลเป็นสตริงหรืออักขระ [] และตัวอักษรทั้งหมดมีตัวพิมพ์เล็กเหมือนกัน


2

PHP, 96 ไบต์

for(;($t=$argv[1])[++$i];)$s+=$r[]=$t[$i-1]<=>$t[$i];echo(max($r)-min($r)<2)*(0<=>$s)*(1<$s*$s);

หรือ 98 ไบต์

$s=str_split($t=$argv[1]);sort($s);echo(-($t==strrev($j=join($s)))|$t==$j)*!!count_chars($t,3)[2];

0 ไม่เป็นคลื่น 1 เพิ่ม -1 ลดลง


-แทน2*(-1 สำหรับการลดลง: -1 ไบต์) *(!!...)ไม่ต้องใช้วงเล็บ (-2)
ติตัส

$s*$s>1แทนabs($s)>1(-2)
ติตัส

@Titus Done Thank You
JörgHülsermann

2

PHP, 100 ไบต์

$n=$m=$l=str_split($argv[1]);sort($n);rsort($m);echo(($n==$l)-($m==$l))*(count(array_unique($l))>2);

ผลตอบแทน:

  • -1 สำหรับหยักลดลง
  • 0 เพราะไม่เป็นหยัก
  • 1 สำหรับหยักเพิ่ม

!!array_unique($s)[2]แทนcount(array_unique($l))>2
JörgHülsermann

ที่จริงแล้วปัญหาที่เกิดขึ้นคือ array_unique จะเป็นคีย์ที่ตรงกันข้าม ดังนั้นอินพุตเช่น aaabc จะเอาท์พุทเท็จ 0 เมื่อใช้ array_unique
chocochaos

1

C, 164 ไบต์

main(){char s[99];scanf("%s",s);char *c=&s;int p=*c;while(*c^0){if(p>*c){if(c-&s[0]>1)return 0;while(*c^0){if(p<*c)return 0;p=*c;c++;}return 2;}p=*c;c++;}return 1;}

ส่งคืน 0 หากไม่ใช่ wawy, 1 ถ้า wawy และเพิ่มขึ้น 2 ถ้าลดลง


1

แร็กเก็ต 321 ไบต์

(let*((ld(λ(sl)(for/list((i(sub1(length sl))))(-(list-ref sl(add1 i))(list-ref sl i)))))(l(ld(remove-duplicates(map
(λ(x)(char->integer x))(string->list s)))))(am andmap)(N"Not WAVY")(d displayln))(cond[(<(length l)2)(d N)][(am(λ(x)(>= x 0))l)
(d"YES; RAISING")][(am(λ(x)(<= x 0))l)(d"YES; DECREASING")][else(d N)])))

Ungolfed:

(define (f s)
  (let*  ((ld (lambda(sl)          ; sub-fn to get differences in list elements
                (for/list ((i (sub1(length sl))))
                  (- (list-ref sl (add1 i))
                     (list-ref sl i) ) )))
          (l (ld
              (remove-duplicates
               (map
                (lambda(x)
                  (char->integer x))
                (string->list s)))))
          (am andmap)
          (N "Not WAVY")
          (d displayln))
    (cond
      [(< (length l) 2)(d N)]
      [(am (lambda(x) (>= x 0)) l) (d "YES; RAISING")]
      [(am (lambda(x) (<= x 0)) l) (d "YES; DECREASING")]
      [else (d N)]
      )))

การทดสอบ:

(f "ADEPT"); > YES > RAISING
(f "BEGIN"); > YES > RAISING
(f "BILL"); > YES > RAISING
(f "BOSS"); > YES > RAISING
(f "BOOST"); > YES > RAISING
(f "CHIMP"); > YES > RAISING
(f "KNOW"); > YES > RAISING
(f "SPONGE"); > YES > DECREASING
(f "SPOON"); > YES > DECREASING
(f "TROLL"); > YES > DECREASING
(f "WOLF"); > YES > DECREASING

(f "WATCH")
(f "EARTH")
(f "NINON")
(f "FOO")
(f "BAR")
(f "WAVE")
(f "SELECTION")

เอาท์พุท:

YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; RAISING
YES; DECREASING
YES; DECREASING
YES; DECREASING
YES; DECREASING
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY
Not WAVY

1

Java 7, 254 240 ไบต์

import java.util.*;int c(String s){char[]a=s.toCharArray(),x=a.clone();Arrays.sort(x);return s.replaceAll("(.)\\1{1,}","$1").length()<3?0:Arrays.equals(a,x)|Arrays.equals(x,(new StringBuffer(s).reverse()+"").toCharArray())?a[0]>a[1]?1:2:0;}

เอาต์พุต0ถ้าสตริงอินพุตไม่เป็นคลื่น1หากเป็นคลื่นที่กำลังเพิ่มและ2หากเป็นคลื่นที่ลดลง

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

ลองที่นี่

import java.util.*;
class M{
  static int c(String s){
    char[] a = s.toCharArray(),
           x = a.clone();
    Arrays.sort(x);
    return s.replaceAll("(.)\\1{1,}", "$1").length() < 3
            ? 0
            : Arrays.equals(a, x) | Arrays.equals(x, (new StringBuffer(s).reverse()+"").toCharArray())
               ? a[0] > a[1]
                  ? 1
                  : 2
               : 0;
  }

  public static void main(String[] a){
    System.out.print(c("ADEPT") + ", ");
    System.out.print(c("BEGIN") + ", ");
    System.out.print(c("BILL") + ", ");
    System.out.print(c("BOSS") + ", ");
    System.out.print(c("BOOST") + ", ");
    System.out.print(c("CHIMP") + ", ");
    System.out.println(c("KNOW"));

    System.out.print(c("SPONGE") + ", ");
    System.out.print(c("SPOON") + ", ");
    System.out.print(c("TROLL") + ", ");
    System.out.println(c("WOLF"));

    System.out.print(c("WATCH") + ", ");
    System.out.print(c("EARTH") + ", ");
    System.out.print(c("NINON") + ", ");
    System.out.print(c("FOO") + ", ");
    System.out.print(c("BAR") + ", ");
    System.out.print(c("WAVE") + ", ");
    System.out.print(c("SELECTION") + ", ");
    System.out.print(c("YES") + ", ");
    System.out.print(c("NO") + ", ");
    System.out.print(c("DEFINITION") + ", ");
    System.out.print(c("WATER") + ", ");
    System.out.print(c("WINE") + ", ");
    System.out.print(c("CODE") + ", ");
    System.out.print(c("AAAHHHH") + ", ");
    System.out.print(c("I") + ", ");
    System.out.print(c("MM") + ", ");
    System.out.println(c("ABCA"));
  }
}

เอาท์พุท:

2, 2, 2, 2, 2, 2, 2
1, 1, 1, 1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

int c(char[]s){int t=s[0],f=s.length,a=1,b=1,i;for(i=1;i<f;){if(s[i]-s[i-1]>=0)++a;if(s[i]-s[i++-1]<1)++b;}return a==f?1:b==f?-1:0;}(132 bytes)
Numberknot

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