พื้นหลัง
ลองนึกภาพตัวอักษรภาษาอังกฤษเขียนออกมาในแถวตัวอักษร ABCDEFGHIJKLMNOPQRSTUVWXYZ
- สมมติว่าเรามีเลนส์แบบปรับความกว้างพิเศษซึ่งเมื่อวางอยู่เหนือแถวมันจะแสดง "หน้าต่าง" ของตัวอักษรบางตัวพร้อมตัวอักษรที่อยู่ด้านนอกของเลนส์ที่ซ่อนอยู่จากมุมมอง นอกจากนี้เลนส์นี้ยังมีลักษณะการแปรปรวนดังนั้นตัวอักษรตัวแรกในเลนส์และตัวอักษรที่สองทุกครั้งหลังจากนั้นจะถูกลดขนาดลง แต่ตัวอักษรที่เหลือยังคงแสดงเป็นตัวพิมพ์ใหญ่
ตัวอย่างเช่นเราอาจจะมีเลนส์ที่มีความยาว 5 วางไว้ที่ไหนสักแห่งในช่วงกลางของตัวอักษรและเราเท่านั้นที่จะเห็น. jKlMn
(ระยะเวลาการชั้นนำที่นี่เพื่อให้แน่ใจว่าช่องว่างการแสดง) - โน้ตK
และM
เป็นตัวพิมพ์ใหญ่ยังคงขณะที่j
, l
และn
ทุกคนที่ต่ำกว่า -cased เมื่อเราเลื่อนเลนส์นี้จากซ้ายไปขวาตามตัวอักษรตัวอักษรที่แตกต่างกันจะปรากฏขึ้นและตัวอักษรที่แตกต่างกันจะเป็นตัวพิมพ์ใหญ่ งานที่นี่คือการส่งออกตัวอักษรผลลัพธ์เป็นเลนส์เลื่อนตามตัวอักษร
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่รับค่าอินพุทจำนวนเต็ม0 < n < 27
และเอาท์พุทหรือคืนค่าสตริงที่มองเห็นได้เป็นเลนส์ที่อธิบายไว้ด้านบนสไลด์ทั่วตัวอักษร
สำหรับค่าที่n
มากกว่า1
เลนส์จะเริ่มจาก "ห้อย" ออกทางด้านซ้ายของตัวอักษรดังนั้นA
จะแสดงเฉพาะในช่องขวาสุดของเลนส์ บรรทัดแรกของเอาต์พุตใด ๆ จะเป็นเส้นเดียวA
ไม่ว่าจะเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กขึ้นอยู่กับความยาวของเลนส์
ในทำนองเดียวกันเลนส์เลื่อนเสร็จเมื่อZ
อยู่ในช่องด้านซ้ายสุดของเลนส์ (หมายความว่าบรรทัดสุดท้ายในเอาต์พุตใด ๆ จะเป็น 25 ช่องว่างตามด้วยตัวพิมพ์เล็กz
)
ตัวอย่าง
การป้อนข้อมูล: 1
เอาท์พุท:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
การป้อนข้อมูล: 4
เอาท์พุท:
A
aB
AbC
aBcD
bCdE
cDeF
dEfG
eFgH
fGhI
gHiJ
hIjK
iJkL
jKlM
kLmN
lMnO
mNoP
nOpQ
oPqR
pQrS
qRsT
rStU
sTuV
tUvW
uVwX
vWxY
wXyZ
xYz
yZ
z
การป้อนข้อมูล: 26
เอาท์พุท:
A
aB
AbC
aBcD
AbCdE
aBcDeF
AbCdEfG
aBcDeFgH
AbCdEfGhI
aBcDeFgHiJ
AbCdEfGhIjK
aBcDeFgHiJkL
AbCdEfGhIjKlM
aBcDeFgHiJkLmN
AbCdEfGhIjKlMnO
aBcDeFgHiJkLmNoP
AbCdEfGhIjKlMnOpQ
aBcDeFgHiJkLmNoPqR
AbCdEfGhIjKlMnOpQrS
aBcDeFgHiJkLmNoPqRsT
AbCdEfGhIjKlMnOpQrStU
aBcDeFgHiJkLmNoPqRsTuV
AbCdEfGhIjKlMnOpQrStUvW
aBcDeFgHiJkLmNoPqRsTuVwX
AbCdEfGhIjKlMnOpQrStUvWxY
aBcDeFgHiJkLmNoPqRsTuVwXyZ
bCdEfGhIjKlMnOpQrStUvWxYz
cDeFgHiJkLmNoPqRsTuVwXyZ
dEfGhIjKlMnOpQrStUvWxYz
eFgHiJkLmNoPqRsTuVwXyZ
fGhIjKlMnOpQrStUvWxYz
gHiJkLmNoPqRsTuVwXyZ
hIjKlMnOpQrStUvWxYz
iJkLmNoPqRsTuVwXyZ
jKlMnOpQrStUvWxYz
kLmNoPqRsTuVwXyZ
lMnOpQrStUvWxYz
mNoPqRsTuVwXyZ
nOpQrStUvWxYz
oPqRsTuVwXyZ
pQrStUvWxYz
qRsTuVwXyZ
rStUvWxYz
sTuVwXyZ
tUvWxYz
uVwXyZ
vWxYz
wXyZ
xYz
yZ
z
กฎระเบียบ
- ใช้กฎอินพุต / เอาต์พุตมาตรฐาน
- ช่องโหว่มาตรฐานไม่อนุญาต
- ใช้กฎมาตรฐานของกอล์ฟ
- ต้องการช่องว่างนำตามที่แสดงเพื่อให้เราทราบว่าเราอยู่ที่ไหนในตัวอักษร
- แต่ละบรรทัดไม่สามารถมีช่องว่างต่อท้าย (ดังที่แสดง - เอาต์พุตไม่ใช่รูปสี่เหลี่ยมผืนผ้า)
- ขึ้นบรรทัดใหม่ต่อท้ายเป็นตัวเลือก