تحقق مما إذا كان الرقم أو السلسلة عبارة عن متناظر في Java
كيفية التحقق مما إذا كان الرقم أو السلسلة عبارة عن حاجز أم لا هو سؤال شائع. الرقم هو متوازي إذا ظل معكوسه كما هو 404. من ناحية أخرى ، 412 هو غير متوازي لأن معكوسه هو 214. للتحقق مما إذا كان الرقم أو السلسلة متناظرة ، يجب علينا أولا طرح السؤال حول كيفية عكس رقم أو سلسلة في Java؟ يمكنك حل هذه المشكلة باستخدام واجهة برمجة التطبيقات أو باستخدام أساسيات البرمجة فقط مثل الحلقات والشروط والمتغيرات والعوامل المنطقية. يوصى بالبرمجة بنفسك لأن هذه المشكلة البسيطة قد تظهر مبرمجا حقيقيا يمكنه البرمجة والآخر الذي يتلقى كل شيء على طبق.
< / a>< / div>تحقق مما إذا كان العدد الصحيح هو palindrome< / h2> هذا برنامج Java يتحقق مما إذا كان الرقم عبارة عن palindrome أم لا. لا يستخدم هذا البرنامج أي واجهات برمجة تطبيقات ، ومع ذلك ، فإنه يستخدم القسمة والمعامل لاختبار ما إذا كان العدد الصحيح عبارة عن متباين أم لا. يتم تغليف هذا الفحص في الطريقة عكس ()< / سبان> و < نمط الامتداد = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >estPalinsrome(int number).

تحقق مما إذا كان العدد الصحيح هو palindrome< / h2> هذا برنامج Java يتحقق مما إذا كان الرقم عبارة عن palindrome أم لا. لا يستخدم هذا البرنامج أي واجهات برمجة تطبيقات ، ومع ذلك ، فإنه يستخدم القسمة والمعامل لاختبار ما إذا كان العدد الصحيح عبارة عن متباين أم لا. يتم تغليف هذا الفحص في الطريقة عكس ()< / سبان> و < نمط الامتداد = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >estPalinsrome(int number).
public class Palindrome {
الفراغ العام الثابت الرئيسي (سلسلة args[]){
int[] الأرقام = {0, 2, 113, 11, 1443, 1441, 1654, 19891};
ل (رقم int: أرقام) {
System.out.println (رقم +" هو palindrome؟ "
+ estPalindrome (عدد)) ؛
}
}
منطقية ثابتة خاصة isPalindrome (رقم int) {
if (number == inverse (number)) {
إرجاع true ؛
}
إرجاع خطأ ؛
}
معكوس int ثابت خاص (رقم int) {
int معكوس = 0;
بينما (رقم != 0) {
معكوس = معكوس * 10 + عدد٪ 10 ؛
number = number / 10 ؛
}
العودة العكسية ؛
}
}
< / pre> تشغيل هذا البرنامج يعطي هذه النتيجة:
0 هو palindrome؟ صحيح < BR / >2 هو باليندروم؟ صحيح < BR / >113 هو باليندروم؟ خطأ < BR / >11 هو باليندروم؟ صحيح < BR / >1443 هو باليندروم؟ خطأ
1441 هو باليندروم؟ صحيح < BR / >1654 هو باليندروم؟ خطأ
19891 هو باليندروم؟ true
يأخذ برنامج Java هذا مجموعة من الأعداد الصحيحة ويتحقق مما إذا كان الرقم عبارة عن متباهى أم لا.
تحقق مما إذا كانت السلسلة عبارة عن palindrome
تسمى السلسلة بالتناظر إذا كانت مساوية لمعكوسها ، على سبيل المثال ، "الرادار" هو palindrome ، ويبقى عكسه "الرادار". أمثلة أخرى مثل: "أبابا" ، "هي" ، "آنا" .< / div> palindrome< / h3 >< pre class = "prettyprint lang-java" >import java.util.Scanner ؛
Palindrome_string الفئة العامة {
الفراغ العام الثابت الرئيسي (سلسلة args [])
{
كلمة سلسلة ، mot_inverse = "" ؛
الماسح الضوئي في = ماسح ضوئي جديد (System.in) ؛
System.out.println("أدخل كلمة");
word = in.nextLine ();
إذا كان (pal (mot))
System.out.println ("'" + mot + "' هو palindrome") ؛
else
System.out.println ("'" + كلمة + "' ليست متباينة") ؛
}
pal منطقي ثابت عام (String mot) {
int i = 0 ، length = word.length () -1 ؛
يساوي منطقي = صحيح ؛
/ * اختبر الحرف الأول بالحرف الأخير < br / > * وإذا كانا متساويين ، يستمر البرنامج < br / > * للاسترخاء في حلقة while واختبار
* الحرف التالي (i + 1 بالطول - (i + 1))
* حتى يساوي الطول / 2،
* ، وإلا فإن القيمة المنطقية المتساوية تتلقى false
* لذلك ، ترجع الدالة PAL false
*/
بينما (i< الطول / 2 & & يساوي) {
if (charAt.word (i) == charAt.word (i))
يساوي = صحيح ؛
else
يساوي = خطأ ؛
i++;
}
عائد متساو ؛
}
}
< / pre>النتيجة:
< pre class = "prettyprint lang-java" >أدخل كلمة
rotor
'rotor' هو palindrome< / pre>< / div>recursive palindrome< / h3 >< pre class = "prettyprint lang-java" > public class Palindrome_recursive {
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
سلسلة [] سلاسل = {"هنا" ، "شائعة" ، "ليلى" ،
"لول" ، "مرحبا" ، "لا"} ؛
for (سلسلة سلسلة: سلاسل) {
if (estPalindrome (string))
System.out.println ("'" + سلسلة + "' هي palindrome") ؛
else
System.out.println ("'" + سلسلة + "' ليست باليندروم") ؛
}
}
منطقية ثابتة عامة isPalindrome (سلسلة s)
{
// إذا كان الطول 0 أو 1
// فهو palindrome
if (s.length () == 0 || s.length () == 1)
true ؛
if (s.charAt (0) == s.charAt (s.length ()-1))
/*
* اختبار إذا كان الأول و الحرف الأخير < br / > * هي نفسها ثم كرر نفس المعالجة < br / > * مع السلسلة الفرعية مع الحرف الأول و < br / > * الأخير حتى تصل إلى
* الشرط الأول
* /
إرجاع isPalindrome (s.substring (1 ، s.length () -1)) ؛
/*
* إذا كانت حالة if خاطئة ، فإنها ترجع
* false
* /
إرجاع false ؛
}
}
< / pre>النتيجة:
< pre class = "prettyprint lang-java" > 'here' هو palindrome
'شائعة' ليست palindrome
'Leila' ليست palindrome
'lol' هي palindrome
'hi' ليست palindrome
'no' هي palindrome
< / pre>كلاهما إذا كانت الرموز حساسة لحالة الأحرف وكبيرة ، فيمكنك تغييرها لتجاهل الأحرف الكبيرة عن طريق تحويل كلتا السلسلتين إلى أحرف صغيرة أو كبيرة ،
كما قيل ، يجب على المبرمج الجيد دائما تدرب على التمارين التي تبدو سهلة وخاصة مبتدئي برمجة Java الذين بدأوا للتو في تعلم برمجة Java.
References:
List of French palindromes
Stackoverflow: تحقق من السلسلة بحثا عن palindrome
Java program للتحقق من palindrome
الفراغ العام الثابت الرئيسي (سلسلة args[]){
int[] الأرقام = {0, 2, 113, 11, 1443, 1441, 1654, 19891};
ل (رقم int: أرقام) {
System.out.println (رقم +" هو palindrome؟ "
+ estPalindrome (عدد)) ؛
}
}
منطقية ثابتة خاصة isPalindrome (رقم int) {
if (number == inverse (number)) {
إرجاع true ؛
}
إرجاع خطأ ؛
}
معكوس int ثابت خاص (رقم int) {
int معكوس = 0;
بينما (رقم != 0) {
معكوس = معكوس * 10 + عدد٪ 10 ؛
number = number / 10 ؛
}
العودة العكسية ؛
}
}
< / pre> تشغيل هذا البرنامج يعطي هذه النتيجة:
0 هو palindrome؟ صحيح < BR / >2 هو باليندروم؟ صحيح < BR / >113 هو باليندروم؟ خطأ < BR / >11 هو باليندروم؟ صحيح < BR / >1443 هو باليندروم؟ خطأيأخذ برنامج Java هذا مجموعة من الأعداد الصحيحة ويتحقق مما إذا كان الرقم عبارة عن متباهى أم لا.
1441 هو باليندروم؟ صحيح < BR / >1654 هو باليندروم؟ خطأ
19891 هو باليندروم؟ true
تحقق مما إذا كانت السلسلة عبارة عن palindrome
تسمى السلسلة بالتناظر إذا كانت مساوية لمعكوسها ، على سبيل المثال ، "الرادار" هو palindrome ، ويبقى عكسه "الرادار". أمثلة أخرى مثل: "أبابا" ، "هي" ، "آنا" .< / div> palindrome< / h3 >< pre class = "prettyprint lang-java" >import java.util.Scanner ؛
palindrome< / h3 >< pre class = "prettyprint lang-java" >import java.util.Scanner ؛
Palindrome_string الفئة العامة {
الفراغ العام الثابت الرئيسي (سلسلة args [])
{
كلمة سلسلة ، mot_inverse = "" ؛
الماسح الضوئي في = ماسح ضوئي جديد (System.in) ؛
System.out.println("أدخل كلمة");
word = in.nextLine ();
إذا كان (pal (mot))
System.out.println ("'" + mot + "' هو palindrome") ؛
else
System.out.println ("'" + كلمة + "' ليست متباينة") ؛
}
pal منطقي ثابت عام (String mot) {
int i = 0 ، length = word.length () -1 ؛
يساوي منطقي = صحيح ؛
/ * اختبر الحرف الأول بالحرف الأخير < br / > * وإذا كانا متساويين ، يستمر البرنامج < br / > * للاسترخاء في حلقة while واختبار
* الحرف التالي (i + 1 بالطول - (i + 1))
* حتى يساوي الطول / 2،
* ، وإلا فإن القيمة المنطقية المتساوية تتلقى false
* لذلك ، ترجع الدالة PAL false
*/
بينما (i< الطول / 2 & & يساوي) {
if (charAt.word (i) == charAt.word (i))
يساوي = صحيح ؛
else
يساوي = خطأ ؛
i++;
}
عائد متساو ؛
}
}
< / pre>النتيجة:
< pre class = "prettyprint lang-java" >أدخل كلمة
rotor
'rotor' هو palindrome< / pre>< / div>recursive palindrome< / h3 >< pre class = "prettyprint lang-java" > public class Palindrome_recursive {
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
سلسلة [] سلاسل = {"هنا" ، "شائعة" ، "ليلى" ،
"لول" ، "مرحبا" ، "لا"} ؛
for (سلسلة سلسلة: سلاسل) {
if (estPalindrome (string))
System.out.println ("'" + سلسلة + "' هي palindrome") ؛
else
System.out.println ("'" + سلسلة + "' ليست باليندروم") ؛
}
}
منطقية ثابتة عامة isPalindrome (سلسلة s)
{
// إذا كان الطول 0 أو 1
// فهو palindrome
if (s.length () == 0 || s.length () == 1)
true ؛
if (s.charAt (0) == s.charAt (s.length ()-1))
/*
* اختبار إذا كان الأول و الحرف الأخير < br / > * هي نفسها ثم كرر نفس المعالجة < br / > * مع السلسلة الفرعية مع الحرف الأول و < br / > * الأخير حتى تصل إلى
* الشرط الأول
* /
إرجاع isPalindrome (s.substring (1 ، s.length () -1)) ؛
/*
* إذا كانت حالة if خاطئة ، فإنها ترجع
* false
* /
إرجاع false ؛
}
}
< / pre>النتيجة:
< pre class = "prettyprint lang-java" > 'here' هو palindrome
'شائعة' ليست palindrome
'Leila' ليست palindrome
'lol' هي palindrome
'hi' ليست palindrome
'no' هي palindrome
< / pre>كلاهما إذا كانت الرموز حساسة لحالة الأحرف وكبيرة ، فيمكنك تغييرها لتجاهل الأحرف الكبيرة عن طريق تحويل كلتا السلسلتين إلى أحرف صغيرة أو كبيرة ،
كما قيل ، يجب على المبرمج الجيد دائما تدرب على التمارين التي تبدو سهلة وخاصة مبتدئي برمجة Java الذين بدأوا للتو في تعلم برمجة Java.
References:
List of French palindromes
Stackoverflow: تحقق من السلسلة بحثا عن palindrome
Java program للتحقق من palindrome
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
سلسلة [] سلاسل = {"هنا" ، "شائعة" ، "ليلى" ،
"لول" ، "مرحبا" ، "لا"} ؛
for (سلسلة سلسلة: سلاسل) {
if (estPalindrome (string))
System.out.println ("'" + سلسلة + "' هي palindrome") ؛
else
System.out.println ("'" + سلسلة + "' ليست باليندروم") ؛
}
}
منطقية ثابتة عامة isPalindrome (سلسلة s)
{
// إذا كان الطول 0 أو 1
// فهو palindrome
if (s.length () == 0 || s.length () == 1)
true ؛
if (s.charAt (0) == s.charAt (s.length ()-1))
/*
* اختبار إذا كان الأول و الحرف الأخير < br / > * هي نفسها ثم كرر نفس المعالجة < br / > * مع السلسلة الفرعية مع الحرف الأول و < br / > * الأخير حتى تصل إلى
* الشرط الأول
* /
إرجاع isPalindrome (s.substring (1 ، s.length () -1)) ؛
/*
* إذا كانت حالة if خاطئة ، فإنها ترجع
* false
* /
إرجاع false ؛
}
}
< / pre>النتيجة:
< pre class = "prettyprint lang-java" > 'here' هو palindrome
'شائعة' ليست palindrome
'Leila' ليست palindrome
'lol' هي palindrome
'hi' ليست palindrome
'no' هي palindrome
< / pre>كلاهما إذا كانت الرموز حساسة لحالة الأحرف وكبيرة ، فيمكنك تغييرها لتجاهل الأحرف الكبيرة عن طريق تحويل كلتا السلسلتين إلى أحرف صغيرة أو كبيرة ،
كما قيل ، يجب على المبرمج الجيد دائما تدرب على التمارين التي تبدو سهلة وخاصة مبتدئي برمجة Java الذين بدأوا للتو في تعلم برمجة Java.
References:
List of French palindromes
Stackoverflow: تحقق من السلسلة بحثا عن palindrome
Java program للتحقق من palindrome