พื้นหลัง
ขณะนี้ฉันอยู่ใน AP Comp Sci A: คลาส Java และฉันต้องการเริ่มเพื่อนบางคนของฉันเกี่ยวกับการตีกอล์ฟ ฉันมีความท้าทายจากหลักสูตรและฉันต้องการดูว่ามีกี่ไบต์ที่ชุมชนสามารถทำสิ่งนี้ได้
รายละเอียดการท้าทาย:
กำหนดสตริงอินพุตสองสตริงคือสตริงหลักและสตริง pivot ให้ทำดังนี้:
ถ้าสตริงเดือยเป็นสิ่งที่ครั้งหนึ่งเคยเป็น substring ของสตริงหลักส่วนหนึ่งของสตริงหลักที่มาก่อนสตริงเดือยจะต้องสลับกับส่วนหนึ่งที่เกิดขึ้นหลังจากที่ในขณะที่การรักษาสินค้าได้ภายใน subtrings กล่าวถูกเปลี่ยน
ตัวอย่างเช่น:
หากสตริงสาระสำคัญว่างเปล่าหรือไม่พบสตริงสาระสำคัญภายในสตริงหลักโปรแกรมไม่จำเป็นต้องกำหนดพฤติกรรมไว้
หากมีมากกว่าหนึ่งอินสแตนซ์ของสตริงเดือยการแยกควรเกิดขึ้นในอินสแตนซ์แรกและอินสแตนซ์แรกเท่านั้นของเดือย
ตัวอย่าง: ให้สตริงหลักOneTwoThreeTwoOneและสตริงเดือยผลผลิตที่ควรจะเป็นTwoThreeTwoOneTwoOne
ได้รับสตริงหลัก1Two2Two3Two4และหมุนเอาท์พุทที่ควรจะเป็นTwo2Two3Two4Two1
ได้รับสตริงหลักOneTwoThreeและสตริงเดือย "สอง" ThreeTwoOneเอาท์พุทที่ควรจะเป็น รับสายหลักthe rabbit is faster than the turtleและสายหมุน
is faster than
(หมายเหตุพื้นที่เดียวต่อท้ายและก่อนหน้านี้) the turtle is faster than the rabbitเอาท์พุทที่ควรจะเป็น
ได้รับสตริงหลัก1-2-3-4-5-6และหมุนเอาท์พุทที่ควรจะเป็น-2-3-4-5-6-1
เล่ม:
นี่เป็นคำถามแรกของฉันเกี่ยวกับการตีกอล์ฟดังนั้นถ้าคุณมีข้อเสนอแนะหรือคำวิจารณ์ที่สร้างสรรค์คุณสามารถพูดอย่างนั้นได้
นอกจากนี้รหัสของฉันสำหรับโครงการนี้ (เขียนด้วยภาษา Java เพราะหลักสูตรเน้นที่เรื่องนั้น) ดูได้ที่ด้านล่าง หากคุณมีคำแนะนำใด ๆ ฉันชอบที่จะเห็นพวกเขา ขณะนี้มีขนาด 363 ไบต์ แต่ฉันคิดว่าคุณสามารถสร้างโซลูชันที่ดีและเล็กลงได้
import java.util.Scanner;interface Main{static<T>void D(T f){System.out.println(f);}static void main(String[]A){Scanner s=new Scanner(System.in);D("Enter the first String:");String a=s.nextLine();D("Enter the pivot String:");String p=s.nextLine();if(p.isEmpty()|!a.contains(p)){D("Error: Pivot String not found.");return;}String w[]=a.split(p,2);D(w[1]+p+w[0]);}}
หมายเหตุ: ข้อความสำหรับอินพุตและสำหรับกรณีที่ไม่พบสตริงสาระสำคัญจำเป็นสำหรับการกำหนดค่าดั้งเดิม แต่ไม่ใช่สำหรับความท้าทายนี้
2-3-4-5-6-1ดังนั้นการส่งออกควรจะตั้งใจ
pivot='-'และmain='1-2-3-4-5-6'คืออะไร? ส่วนใหญ่ส่งออกการส่ง2-3-4-5-6-1นี้2-1-3-4-5-6แต่ที่ผมเข้าใจความท้าทายที่ควรจะเป็น