พื้นหลัง
ขณะนี้ฉันอยู่ใน AP Comp Sci A: คลาส Java และฉันต้องการเริ่มเพื่อนบางคนของฉันเกี่ยวกับการตีกอล์ฟ ฉันมีความท้าทายจากหลักสูตรและฉันต้องการดูว่ามีกี่ไบต์ที่ชุมชนสามารถทำสิ่งนี้ได้
รายละเอียดการท้าทาย:
กำหนดสตริงอินพุตสองสตริงคือสตริงหลักและสตริง pivot ให้ทำดังนี้:
ถ้าสตริงเดือยเป็นสิ่งที่ครั้งหนึ่งเคยเป็น substring ของสตริงหลักส่วนหนึ่งของสตริงหลักที่มาก่อนสตริงเดือยจะต้องสลับกับส่วนหนึ่งที่เกิดขึ้นหลังจากที่ในขณะที่การรักษาสินค้าได้ภายใน subtrings กล่าวถูกเปลี่ยน
ตัวอย่างเช่น:
หากสตริงสาระสำคัญว่างเปล่าหรือไม่พบสตริงสาระสำคัญภายในสตริงหลักโปรแกรมไม่จำเป็นต้องกำหนดพฤติกรรมไว้
หากมีมากกว่าหนึ่งอินสแตนซ์ของสตริงเดือยการแยกควรเกิดขึ้นในอินสแตนซ์แรกและอินสแตนซ์แรกเท่านั้นของเดือย
ตัวอย่าง: ให้สตริงหลักOneTwoThreeTwoOne
และสตริงเดือยผลผลิตที่ควรจะเป็นTwo
ThreeTwoOneTwoOne
ได้รับสตริงหลัก1Two2Two3Two4
และหมุนเอาท์พุทที่ควรจะเป็นTwo
2Two3Two4Two1
ได้รับสตริงหลัก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
แต่ที่ผมเข้าใจความท้าทายที่ควรจะเป็น