โปรแกรม Java เพื่อตรวจสอบว่า Two Strings เป็น Anagram | โปรแกรมแอนนาแกรม

เผยแพร่แล้ว: 2021-07-23

สารบัญ

ข้อเท็จจริงที่รู้จักกันน้อยเกี่ยวกับ Java

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

  • โอ๊คเป็นชื่อดั้งเดิมของชวา
  • คุณสามารถสร้างรายได้มากมายในขณะที่เรียนรู้ภาษาการเขียนโปรแกรมนี้
  • Java เป็นภาษาโปรแกรมที่มีประชากรมากเป็นอันดับสองของโลก โดยภาษาแรกคือ C.
  • อุปกรณ์ประมาณ 3 พันล้านเครื่องทั่วโลกกำลังทำงานบน Java
  • Java เป็นภาษาโปรแกรมที่คำนึงถึงขนาดตัวพิมพ์ กล่าวคือ “Final” และ “final” ไม่เหมือนกันในโค้ด Java อ่านเพิ่มเติมว่าทำไม java ถึงได้รับความนิยมจากนักพัฒนา

ภาพรวมของแอนนาแกรม

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

สตริง 'พระเจ้า' และ 'สุนัข' เป็นแอนนาแกรมของกันและกัน เนื่องจากสตริงเดิมสามารถจัดเรียงใหม่เพื่อให้ได้อันหลังเพียงแค่สลับตำแหน่งของอักขระ 'd' และ 'g' สำหรับสตริงอินพุตสองสตริงใดๆ ความถี่ของอักขระแต่ละตัวจะถูกคำนวณเพื่อตรวจสอบว่าสตริงนั้นเป็นแอนนาแกรมของกันและกันหรือไม่ ดังนั้น แอนนาแกรมของสตริงจึงสามารถกำหนดเป็นสตริงอื่นๆ ที่มีอักขระเดียวกันกับความถี่เดียวกันกับสตริงอินพุตในลำดับใดก็ได้

อัลกอริทึมสำหรับโปรแกรม Anagram ใน Java

ขั้นตอนที่ 1: กำหนดสองสตริงอินพุต

ขั้นตอนที่ 2: กำหนดความยาวของแต่ละสตริง สตริงอินพุตไม่ใช่แอนนาแกรมของกันและกัน หากมีความยาวสตริงต่างกัน

ขั้นตอนที่ 3: หากสตริงมีความยาวเท่ากัน อักขระสตริงจะถูกแปลงเป็นอักษรตัวพิมพ์เล็กเพื่อให้แน่ใจว่าเปรียบเทียบได้ง่ายขึ้น

ขั้นตอนที่ 4: อักขระสตริงจะถูกจัดเรียงตามฟังก์ชัน inbuilt หรือแปลงเป็นอาร์เรย์อักขระแล้วจัดเรียง

ขั้นตอนที่ 5: อาร์เรย์ที่เรียงลำดับของอักขระจะถูกตรวจสอบความเท่าเทียมกัน

การใช้งานโปรแกรม Anagram ใน Java

มีวิธีแก้ไขหลายวิธีในการติดตั้งโค้ดเพื่อค้นหาว่าสองสตริงเป็นแอนนาแกรมหรือไม่ สำหรับแต่ละวิธีแก้ปัญหาที่กล่าวถึงในส่วนถัดไป ขั้นตอนที่ 2 ของอัลกอริทึมที่อธิบายข้างต้นจะสร้างพื้นฐานและอำนวยความสะดวกในการออกจากระบบก่อนกำหนดหากความยาวของสตริงไม่ตรงกัน ในตอนต่อไป มาทำความเข้าใจเพิ่มเติมเกี่ยวกับประเภทต่าง ๆ ของการเขียนโค้ดสำหรับตรรกะของแอนนาแกรม

วิธีการเรียงลำดับ

อักขระของสตริงอินพุตแต่ละรายการสามารถจัดเรียงเพื่อรับอาร์เรย์อักขระปกติสองตัว หากอาร์เรย์ที่ปรับมาตรฐานของสตริงอินพุตทั้งสองเหมือนกัน จะถือว่าสตริงเป็นแอนนาแกรมของกันและกัน และในทางกลับกัน

ความเข้าใจและการใช้งานโค้ดนี้ง่ายขึ้น ความซับซ้อนของเวลาของโซลูชันข้างต้นคือ O(n log n) และจำเป็นต้องมีพื้นที่เพิ่มเติมเพื่อจัดเก็บอาร์เรย์อักขระของสตริงอินพุต

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

วิธีการนับเพื่อนำ Anagram Logic ไปใช้

ในวิธีนี้ จะวัดจำนวนการมีอยู่ของอักขระแต่ละตัวในสองสตริงอินพุต หากความถี่ของอักขระแต่ละตัวในทั้งสองสตริงเท่ากัน สตริงจะเป็นแอนนาแกรมของกันและกัน

ให้เราสร้างฮิสโตแกรมเดียวเพื่อบันทึกหน่วยความจำบางส่วน ในสตริงแรก จำนวนอักขระแต่ละตัวจะเพิ่มขึ้น ในขณะที่การนับจะลดลงสำหรับอักขระตัวที่สอง หากผลลัพธ์สุดท้ายทำให้ทุกอย่างสมดุลเป็นศูนย์ แสดงว่าสตริงนั้นเป็นแอนนาแกรม

โซลูชันนี้ดำเนินการเร็วกว่าโซลูชันก่อนหน้านี้ และความซับซ้อนของเวลาคือ O(n) อย่างไรก็ตาม จำเป็นต้องมีพื้นที่เพิ่มเติมเพื่อนับจำนวนอักขระ วิธีแก้ปัญหานี้ใช้ได้จริงกับสตริงที่มีช่วงอักขระที่เล็กกว่าเท่านั้น ความจริงอีกประการหนึ่งเกี่ยวกับโซลูชันนี้คือใช้ฟังก์ชัน Java ในตัวจำนวนจำกัด และเพิ่มความยาวของโค้ด

ชำระเงิน: แนวคิดและหัวข้อโปรเจ็กต์ Java

กำหนดแอนนาแกรมโดยตรวจสอบด้วย MultiSet

การใช้ MultiSet ซึ่งเป็นคอลเล็กชันที่ช่วยเปรียบเทียบแบบไม่เรียงลำดับกับองค์ประกอบที่เหมือนกัน ทำให้กระบวนการนับและเปรียบเทียบในโซลูชันนี้ง่ายขึ้น

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

ความซับซ้อนของเวลาของโซลูชันนี้คือ O(n) คล้ายกับวิธีการนับเพื่อกำหนดแอนนาแกรม อย่างไรก็ตาม มันสามารถทำงานได้อย่างมีประสิทธิภาพสำหรับสตริงที่มีความยาวมากกว่า นอกจากนี้ การเข้ารหัสยังเกี่ยวข้องกับฟังก์ชัน Java Library จำนวนมากขึ้น

วิธีการตามตัวอักษรเพื่อกำหนด Anagrams

วิธีแก้ปัญหาทั้งหมดที่กล่าวถึงจนถึงตอนนี้ พิจารณาว่าเครื่องหมายวรรคตอนเป็นส่วนหนึ่งของสตริงด้วย นอกจากนี้ โซลูชันเหล่านั้นยังคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ วิธีการแบบตัวอักษรจะใช้โค้ดเพื่อตรวจสอบสตริงอินพุตตามคำจำกัดความทางภาษาของแอนนาแกรม ในแนวทางนี้ ช่องว่างและเครื่องหมายวรรคตอนจะไม่ถือว่าเป็นส่วนหนึ่งของสตริงอินพุต

ขั้นตอนแรกในขณะที่ใช้วิธีแก้ปัญหาแบบตัวอักษรคือการกำจัดอักขระที่ไม่ต้องการและการแปลงอักขระที่ถูกต้องทั้งหมดเป็นอักษรตัวพิมพ์เล็ก หลังจากขั้นตอนนี้ สามารถใช้การนำไปใช้ที่กล่าวถึงข้างต้นเพื่อตรวจสอบว่าสตริงเป็นแอนนาแกรมหรือไม่

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java การพัฒนาซอฟต์แวร์แบบฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ – ความเชี่ยวชาญพิเศษด้านการพัฒนาแบบเต็มสแต็ก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง , 9+ โครงการและการมอบหมาย, สถานะศิษย์เก่า IIIT-B, โครงการหลักในทางปฏิบัติ & ความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ

ลงจอดบนงานในฝันของคุณ

สมัคร Executive PG Program ด้าน Software Development จาก IIIT-B