Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าครึ่งส่วนของสตริงมีชุดอักขระเหมือนกันใน Python . หรือไม่


เราต้องตรวจสอบว่าสตริงสองส่วนมีชุดอักขระเหมือนกันหรือไม่ใน Python . ความถี่ของอักขระในสองส่วนต้องเท่ากัน หากความยาวของสตริงเป็นเลขคี่ ให้ละเว้นตรงกลางและตรวจสอบอักขระที่เหลือ ทำตามขั้นตอนด้านล่างเพื่อเขียนโค้ดสำหรับโปรแกรม

อัลกอริทึม

<ก่อน>1. เริ่มต้นสตริง2. เริ่มต้นตัวแปรพจนานุกรมว่างตัวอักษร3. เริ่มต้นตัวแปร mid ด้วยความยาว / 2.4 เขียนวนซ้ำจนถึงองค์ประกอบกลาง 4.1. เริ่มต้นรายการพจนานุกรมที่เกี่ยวข้องด้วยตัวอักษร[char] ด้วยตัวอักษรหนึ่งตัวหากไม่ได้กำหนดค่าเริ่มต้น 4.2. หากเริ่มต้นแล้ว ให้เพิ่มจำนวนขึ้น 1.5 เรียกใช้การวนซ้ำจากองค์ประกอบกลางไปยังรายการสุดท้าย 5.1. ตรวจสอบว่าอักขระนั้นอยู่ในพจนานุกรมหรือไม่ 5.1.1. ลดจำนวนอักขระลงหนึ่งตัวหากอยู่ในพจนานุกรม6 เรียกใช้การวนซ้ำตัวอักษรพจนานุกรม 6.1. หากคุณพบรายการใดที่มีค่ามากกว่า 0 6.1.1. พิมพ์ **ไม่!**. 6.2. อย่างอื่นพิมพ์ ใช่!

มาเขียนโค้ดกัน

ตัวอย่าง

## initializing the stringstring ="aabccbaa"## initializing an empty stringalphabets ={}## initializing the mid variablemid =len(string) // 2## ​​loop เพื่อนับความถี่ของถ่านในครึ่งแรกสำหรับ i ใน range(กลาง):## ตั้งค่าการนับถ่านเป็น 1 หากไม่ได้อยู่ในพจนานุกรมหากไม่ใช่ตัวอักษร.get(string[i], 0):alphabets[string[i]] =1 อื่น ๆ:## การเพิ่มค่า นับถ่านทีละ 1 ถ้ามันเริ่มต้นตัวอักษร[string[i]] +=1## วนเพื่อลดจำนวนถ่านทีละ 1 หากมีอยู่ในครึ่งหลังของสตริงสำหรับ i ในช่วง (len(สตริง)) - 1, กลาง - 1, -1):## ตรวจสอบว่าอักขระอยู่ในครึ่งหลังหรือไม่ว่าตัวอักษร.get(string[i], 0):## ถ้ามีอยู่ ให้ลดจำนวนตัวอักษรลง 1 ตัวอักษร[string[i] ] -=1## การเริ่มต้นตัวแปรแฟล็กสำหรับ trackflag =1## วนรอบเพื่อตรวจสอบค่าหลังจาก decrementingfor i ในตัวอักษร.values():## กำลังตรวจสอบค่าศูนย์ถ้า i !=0:## ถ้าไม่ใช่ศูนย์ทำลาย วนซ้ำและพิมพ์ No! print("No!") ## ตั้งค่า 0 สำหรับแทร็กแฟล็ก =0 break## ถ้าค่าแฟล็กยังคงเป็น 1 แสดงว่าใช่! ถ้าแฟล็ก ==1:## การพิมพ์ ใช่! print("ใช่!")

ผลลัพธ์

หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้

ใช่!

บทสรุป

หากคุณมีข้อสงสัยเกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น