เมื่อคุณค้นหาบางสิ่งบางอย่างในGoogleAbout 53,000,000 results (0.22 seconds)
ก็อำนวยความสะดวกให้ข้อความอยู่ด้านบนของหน้าพูดอะไรบางอย่างเช่น (ตัวเลขเปลี่ยนไปตามสิ่งที่ค้นหาแน่นอน)
ในการท้าทายนี้คุณจะเขียนโปรแกรมที่ดึงกราฟ ASCII แบบลอการิทึมของจำนวนผลลัพธ์ที่กำหนดโดย Google เมื่อค้นหาคำนำหน้าที่ไม่ว่างเปล่าทั้งหมดของวลีค้นหาที่ระบุ
ค้นหาวลีถูกกำหนดให้เป็นหนึ่งหรือมากกว่าสตริงของตัวเลขและตัวอักษรตัวพิมพ์เล็กแยกออกจากพื้นที่หนึ่งจากแต่ละอื่น ๆ ใน Regex (?:[a-z0-9]+ )*[a-z0-9]+
ค้นหาวลีคือ
ดังนั้นim ok
, r
และ1a 2
ทุกคนค้นหาวลี แต่I'm OK
, R
, 1a 2
และจะไม่ได้
(ข้อ จำกัด ของตัวละครอยู่ในตำแหน่งเพราะ Google ไม่ค่อยคำนึงถึงตัวพิมพ์ใหญ่หรือสัญลักษณ์พิเศษเข้ามาด้วยการหลีกเลี่ยงอักขระที่ไม่ใช่ตัวอักษรและตัวเลขใน URL ก็เป็นเรื่องยุ่งยากเช่นกัน)
สเป็ค
โปรแกรมของคุณจะต้องใช้วลีค้นหาและเลขทศนิยมเป็นบวก H จาก stdin หรือบรรทัดคำสั่ง (คุณสามารถสันนิษฐานได้ว่ามันใช้ได้และไม่เป็นไรถ้าคุณต้องการคำพูดหรือสิ่งที่อยู่รอบ ๆ วลีค้นหา)
เป็นตัวอย่างการทำงานสมมติว่าวลีค้นหาคือa car
และ H = 0.75
ขั้นตอนที่ 1:
รวบรวมคำนำหน้าไม่ว่างเปล่าของการค้นหาวลีของคุณและใส่ไว้ในเครื่องหมายคำพูดคู่ เครื่องหมายคำพูดทำให้แน่ใจว่าจะค้นหาวลีที่ถูกต้องหลีกเลี่ยงการเปลี่ยนเส้นทาง'คุณหมายถึง ... 'หรือไม่
a[space]
ยกเว้นคำนำหน้าทั้งหมดที่สิ้นสุดในพื้นที่เช่น
Prefixes
"a"
"a c"
"a ca"
"a car"
ขั้นตอนที่ 2:
ค้นหาแต่ละคำเหล่านี้ตามที่ปรากฏโดยใช้https://www.google.comและจดบันทึกจำนวนผลลัพธ์ที่ส่งคืน
Search Term Message Results
"a" About 6,950,000,000 results (0.27 seconds) 6950000000
"a c" About 861,000,000 results (0.27 seconds) 861000000
"a ca" About 2,990,000 results (0.30 seconds) 2990000
"a car" About 53,900,000 results (0.39 seconds) 53900000
หากคำค้นหาไม่ตรงกับเอกสารใด ๆให้ใส่ 0 ในResults
คอลัมน์
ขั้นตอนที่ 3:
คำนวณy = floor(H * log10(r + 1))
สำหรับแต่ละแถวโดยที่ r คือResults
ค่า H ยังคงเป็น 0.75 ที่นี่
Search Term Results y
"a" 6950000000 7
"a c" 861000000 6
"a ca" 2990000 4
"a car" 53900000 5
ขั้นตอนที่ 4:
จัดเรียงy
จำนวนของแถบแนวตั้ง ( |
) ด้านบนอักขระสุดท้ายของคำค้นหาที่ไม่มีเครื่องหมายอัญประกาศใช้ช่องว่างเพื่อเติมพื้นที่ว่างในกราฟแท่ง
|
| |
| | |
| |||
| |||
| |||
| |||
a car
กราฟนี้เป็นผลลัพธ์สุดท้ายของโปรแกรมของคุณและสิ่งเดียวที่จำเป็นในการแสดงผล มันควรจะไปที่ stdout
เกณฑ์การให้คะแนน
นี่คือ รหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
หมายเหตุ
- คุณอาจจะใช้ shorteners URL หรือเครื่องมือค้นหาอื่น ๆ / APIs ตราบใดที่ผลจะเป็นเช่นเดียวกับการค้นหาhttps://www.google.com
- ฉันรู้ว่าการเสนอราคาซ้ำไม่ใช่วิธีที่แน่นอนในการยกเว้นการเปลี่ยนเส้นทาง "คุณหมายถึง ... " การเพิ่ม
&nfpr=1
URL ไม่ได้ผลเสมอไป ไม่ต้องกังวลกับความไม่ถูกต้องเหล่านี้ เพียงมองหาAbout X results...
ข้อความไม่ว่าจะเกิดอะไรขึ้นหรือตั้งค่าResults
เป็น 0 หากไม่มี - มีคอลัมน์ว่างเหนือช่องว่างใด ๆ ในการค้นหาวลีในกราฟ
- กราฟไม่ควรกว้างหรือสูงกว่าที่ควรจะเป็น (เช่นช่องว่าง)
- ไม่เป็นไรหากโปรแกรมของคุณมีผลข้างเคียงเช่นการเปิดเว็บเบราว์เซอร์เพื่อให้สามารถอ่านหน้า Google html / js ที่เป็นความลับได้เมื่อมีการแสดงผล