برنامج Palindrome في جافا | برنامج جافا للتحقق من Polindrome

نشرت: 2021-02-26

جدول المحتويات

مقدمة

اكتسبت Java الكثير من الأضواء بين المبرمجين بسبب بساطتها وحيادها المعماري واستقلالية النظام الأساسي والتنفيذ الموزع وقابلية إعادة الاستخدام. أيضًا ، تحتوي Java على العديد من المكتبات المحددة مسبقًا للبرمجة السلسة. وسيكون الجميع متحمسين للترميز في مثل هذه اللغة.

الآن ننتقل إلى موضوعنا ، سنقوم بكتابة كود جافا للتحقق مما إذا كان الإدخال المعطى متماثل أم لا.

يُقال أن الرقم أو الكلمة متماثل إذا ظل كما هو بعد عكسه. ويمكننا تنفيذ الحل بشكل تكراري وعودي. لذلك دعونا نبدأ!

كود جافا التكراري

الفكرة بسيطة. سنعلن عن متغير "معكوس" يخزن الرقم المعكوس لمدخلاتنا.

سنضرب المتغير العكسي في 10 (لملء موضع الوحدة بـ 0) في كل تكرار. ثم نضيف باقي رقم الإدخال بعد تقسيمه على 10. بعد إضافة الباقي ، سنقسم رقم الإدخال على 10 (لإزالة الرقم الموجود في موضع الوحدة).

سنوقف الخوارزمية أعلاه عندما يصبح رقم الإدخال 0 ، وسيكون الرقم الموجود في المتغير العكسي هو عكس رقم الإدخال.

فئة عامة upGrad {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

عدد int = 12221 ؛

عكس int = 0 ؛

درجة الحرارة int = n ؛

بينما (درجة الحرارة> 0) {

عكس = عكس * 10 ؛

عكس = عكس + درجة الحرارة٪ 10 ؛

درجة الحرارة = درجة الحرارة / 10 ؛

}

إذا (عكسي == ن)

System.out.print (n + "هو متماثل") ؛

آخر

System.out.print (n + "ليس متماثلًا") ؛

}

}

في الكود أعلاه ، أعلنا عن المتغير "n" الذي يخزن الرقم الأولي ، وعلينا أن نتحقق مما إذا كان الرقم n متماثلًا أم لا. في الحلقة while ، سنتبع الخوارزمية التي ناقشناها سابقًا. وأخيرًا ، نتحقق مما إذا كان الرقم المعكوس يساوي الرقم الأولي أم لا. إذا كان الرقم الذي تم تغييره والأرقام الأولية متشابهة ، فإننا نطبعه على أنه متماثل آخر ، وليس متناظرا.

الآن ، سيعمل هذا الرمز فقط لإدخال عدد صحيح. وإذا أردنا التحقق مما إذا كانت كلمة معينة متناظرة أم لا ، فعلينا التعامل معها باستخدام السلاسل. وإليك الكود للقيام بذلك.

فئة عامة upGrad {

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

String s = "rotor" ؛

سلسلة معكوسة = سلسلة جديدة () ؛

لـ (int i = s.length () - 1 ؛ i> = 0 ؛ i–)

عكس = عكس + s.charAt (i) ؛

إذا (س يساوي (عكسي))

System.out.print (s + "متناظرة") ؛

آخر

System.out.print (s + "ليس متماثلًا") ؛

}

}

في الكود أعلاه ، نقوم بإلحاق أحرف السلسلة الأولية من الذيل إلى الرأس بالسلسلة العكسية والتحقق مما إذا كانت تساوي السلسلة الأولية أم لا. لقد قمنا بترميز السلسلة بكلمة ، ولكن يمكننا تهيئتها بإدخال المستخدم باستخدام فئة الماسح الضوئي.

العودية كود جافا

في هذا التطبيق ، سنقوم بمقارنة الأحرف الأولى والأخيرة. وإذا كانتا متساويتين ، فتعاود مرة أخرى مع السلسلة المتبقية.

لكن هذا المنطق لن يعمل مع السلاسل التي تحتوي على عدد فردي من الأحرف. لذلك إذا قمنا بتضمين حالة أساسية ، حيث استنتجنا سلسلة باعتبارها متناظرة ، إذا كان طول السلسلة واحدًا ، أي أن موضع الحرفين الأول والأخير هو نفسه. سيؤدي هذا إلى مسح مشكلتنا مع السلاسل ذات الحجم الفردي لأننا سنعود إلى العنصر الأوسط ثم ننهيها على أنها متناظرة نظرًا لأن هناك حرفًا واحدًا فقط في المنتصف.

فئة عامة upGrad {

القيمة المنطقية العامة الثابتة isPalindrome (سلسلة str ، int منخفضة ، كثافة int عالية) {

إذا (منخفض == مرتفع)

العودة صحيح

إذا (str.charAt (منخفض)! = str.charAt (مرتفع))

عودة كاذبة؛

إذا (عالي-منخفض> 1)

العودة isPalindrome (str ، low + 1 ، high-1) ؛

العودة صحيح

}

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

السلسلة s1 = "الدوار" ؛

السلسلة s2 = ”البرمجة” ؛

System.out.println (isPalindrome (s1،0، s1.length () - 1)) ؛

System.out.println (isPalindrome (s2،0، s2.length () - 1)) ؛

}

}

في الكود أعلاه ، كتبنا دالة تتوقع سلسلة ، عددان صحيحان كمعلمات. والعددان الصحيحان ، المنخفض ، المرتفع هما المؤشرات التي تتبع الأحرف التي يجب التحقق منها. وإذا تساوت الأسماء في المركز المنخفض والعالي.

سنقوم باستدعاء نفس الوظيفة مع المعلمات المحدثة مثل تقلص السلسلة من كلا الجانبين بحرف واحد. وإذا التقى المؤشران المنخفض والعالي ببعضهما البعض أو كان هناك حرف واحد بينهما ، فإننا نصل إلى منتصف السلسلة ونختتمها على أنها متناظرة.

الآن ، دعونا نحصل على تشغيل جاف لكود السلسلة "الدوار". مبدئيًا ، المنخفض هو 0 ، والارتفاع هو 4. نظرًا لأن الحرف الموجود في الموضع 0 ('r') يساوي الحرف في الموضع الرابع ('r') ، فسنقوم بإجراء مكالمة متكررة مع تحديث منخفض إلى منخفض +1 وعالية محدثة على أنها عالية -1.

الآن ، المنخفض هو 1 ، وارتفاعه 3 لأن الأحرف في تلك المواضع متساوية ، سنقوم مرة أخرى بإجراء مكالمة متكررة. الآن المنخفض هو 2 وارتفاعه 2 ، ويؤدي إلى تشغيل الحالة الأساسية حيث يكون المنخفض مساويًا للارتفاع ، لذلك سنعود صحيحًا.

يمكننا أيضًا تنفيذ دالة تكرارية للتحقق مما إذا كان العدد الصحيح متماثلًا أم لا ، وإليك طريقة القيام بذلك.

ثابت منطقي isPalindrome (int n ، int rev ، int temp) {

إذا (درجة الحرارة == 0)

عودة ن == مراجعة ؛

rev = rev * 10 ؛

العودة isPalindrome (n ، rev + temp٪ 10 ، temp / 10) ؛

}

لاحظ أنه في الوظيفة أعلاه ، في البداية n و temp هي نفسها. لأنه في النهاية ، قمنا بمقارنة الرقم العكسي مع الرقم الأولي ، لذلك يتم إجراء جميع الحسابات على نفس المتغير. لا ينبغي تغيير الرقم الأولي.

اقرأ أيضًا: أفكار وموضوعات مشروع Java

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

لقد فهمنا تعريف المتماثل ، وتصفحنا من خلال الرموز التكرارية والعودية للتحقق مما إذا كانت السلسلة / الرقم متماثل أم لا. نحن نعرف الكود من خلال التشغيل الجاف لعينة من الأمثلة. الآن بعد أن أصبحت على دراية بتنفيذ رمز للتحقق من المتناظرة ، حاول تنفيذه باستخدام فئة الماسح الضوئي وحاول ترميزه باستخدام مفاهيم OOP.

إذا كنت ترغب في تحسين مهارات جافا الخاصة بك ، فأنت بحاجة إلى الحصول على يديك في مشاريع جافا هذه. إذا كنت مهتمًا بمعرفة المزيد حول Java ، التطوير الكامل ، تحقق من برنامج upGrad & IIIT-B's Executive PG في تطوير برامج مكدس كامل ، وهو مصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9+ المشاريع ، والتعيينات ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.

ما هو التناظر؟

الجملة Palindromic هي تكوين أدبي أو عبارة أو بيت شعر أو كلمة تقرأ نفس الشيء للخلف أو للأمام. المتماثل هو نوع من التلاعب بالكلمات ، وتحديدًا الكلمة أو العبارة (الجملة) التي تقرأ نفس الشيء للخلف أو للأمام. المتماثل هو كلمة ، أو عبارة ، أو رقم ، أو تسلسل آخر من الأحرف يقرأ نفس الشيء للخلف أو للأمام. على سبيل المثال ، رجل ، مخطط ، قناة ، بنما! هو متناظرة. بعض المتناظرات ليست كلمات ، مثل الرقم 106601. بعض المتجانسات عبارة عن عبارات ، مثل سيدتي ، أنا آدم.

كيف تستعد لمقابلة Java؟

إذا كنت تريد أن تكون خبيرًا في Java ، فأنت بحاجة إلى التأكد من ترتيب بعض الأشياء أولاً. أولاً وقبل كل شيء ، يجب أن تكون لديك معرفة عملية جيدة بلغة Java. ثانيًا ، يجب أن يكون لديك فهم جيد لواجهة برمجة تطبيقات جافا. لا يتعين عليك إتقان واجهة برمجة التطبيقات بشكل مطلق ، ولكن يجب أن يكون لديك فهم لما هو متاح ومتى تستخدم أي فئة. أخيرًا ، يجب أن يكون لديك فهم عميق لجهاز Java Virtual Machine. على سبيل المثال ، يجب أن تكون قادرًا على كتابة مترجم فوري للغة بسيطة. إذا كنت تجري مقابلة لوظيفة تطوير مترجم ، فأنت في مأزق.

كيف تكتب برامج جافا جيدة؟

بعض أفضل الممارسات أثناء كتابة البرنامج بلغة جافا هي: استخدم دائمًا "فئة عامة" لبدء الفصل. لا تستخدم مطلقًا "مفتاح الفراغ الثابت العام" داخل الفصل. لا تستخدم الكلمة الأساسية "هذه" داخل الفصل أبدًا. لا تستخدم أبدًا المعدل "النهائي" على الطرق. لا تستخدم أبدًا المعدل "الثابت" في متغيرات الحالة. لا تجعل المتغيرات "عامة" إلا إذا كانت ضرورية للغاية. دائما اصطلاح تسمية جيد. لا تجعل المتغير أكثر من حرف واحد بلاحقة رقمية. تجنب عمل متغيرات بأكثر من كلمة واحدة. لا تستخدم مطلقًا الكلمة الأساسية "هذه" داخل الطريقة. لا تستخدم أبدًا كلمة "كسر".