الانتقال إلى المحتوى الرئيسي

كيفية التحقق مما إذا كانت السلسلة متناظرة في ج: طريقة سهلة

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

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

من المهم ملاحظة أنه يجب تجاهل المسافات وعلامات الترقيم عند التحقق من سلسلة متناظرة. أيضا ، لا ينبغي أن يهم حالة الحروف.

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

  1. تعريف المتناظر في ج
  2. تنفيذ بسيط للخوارزمية
  3. نموذج التعليمات البرمجية في ج
  4. سؤال وجواب
  5. كيف يمكنني التحقق مما إذا كانت السلسلة متناظرة?
  6. ما خوارزمية يمكن استخدامها للتحقق من سلسلة لمتلازمة?
  7. كيف يمكنني تنفيذ وظيفة تتحقق مما إذا كانت السلسلة متناظرة في ج?
  8. ما هي الطرق الأخرى هناك للتحقق من سلسلة متناظرة في ج?

تعريف المتناظر في ج

المتناظر هو سلسلة تقرأ بنفس الطريقة من اليسار إلى اليمين ومن اليمين إلى اليسار.

لتحديد ما إذا كانت السلسلة متناظرة في ج ، يمكنك استخدام الخوارزمية البسيطة التالية:

  1. .
  2. والتي سوف تشير إلى الأحرف الأولى والأخيرة من السلسلة ، على التوالي.
  3. . إذا كانت مختلفة ، فإن السلسلة ليست متناظرة.
  4. في 1.
  5. إلى . إذا تمت مقارنة جميع الأحرف دون اختلافات ، فإن السلسلة هي متناظرة.

نموذج التعليمات البرمجية في ج:

# تشمل

# تشمل

كثافة العمليات الرئيسية()

{

شارع شار [100];

برينتف ("أدخل سلسلة:");

فجيتس (ستر ، سيزوف (ستر) ، ستدين);

إنت لين = سترلين (شارع);

إنت ستارت = 0;

كثافة العمليات نهاية = لين-2;

كثافة العمليات متناظرة = 1;

في حين (بداية < = نهاية)

{

إذا (شارع [بداية]!= شارع [النهاية])

{

متناظرة = 0;

استراحة;

}

بداية++;

النهاية--;

}

إذا (متناظرة)

{

برينتف ("السلسلة هي متناظرة

");

}

آخر

{

برينتف ("السلسلة ليست متناظرة

");

}

العودة 0;

}

، ثم قارن أحرف السلسلة لتحديد ما إذا كانت متناظرة.

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

تنفيذ بسيط للخوارزمية

للتحقق مما إذا كانت السلسلة متناظرة في ج ، يمكننا استخدام الخوارزمية التالية:

  1. قم بتهيئة مؤشرين ، أحدهما يشير إلى بداية السلسلة والآخر إلى نهاية السلسلة.
  2. حتى تلتقي المؤشرات (أي أنها لن تشير إلى نفس الحرف) ، نقارن الأحرف التي تشير إليها. إذا لم تكن متساوية ، فإن السلسلة ليست متناظرة.
  3. إذا اجتمعت المؤشرات (أي أنها تشير إلى نفس الحرف) ، فإن السلسلة هي متناظرة.

Пример кода на C, реализующий данный алгоритм:

#include

#include

#include

bool isPalindrome(char *str) {

int start = 0;

int end = strlen(str) - 1;

while (start < end) {

if (str[start] != str[end]) {

return false;

}

start++;

end--;

}

return true;

}

int main() {

char str[] = "а роза упала на лапу Азора"; // Пример строки

if (isPalindrome(str)) {

printf("Строка является палиндромом

");

} else {

printf("Строка не является палиндромом

");

}

return 0;

}

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

وهكذا ، رمز أعلاه هو وسيلة سهلة للتحقق من سلسلة لمتلازمة في اللغة ج.

نموذج التعليمات البرمجية في ج

Вот простой пример кода на языке C, который проверяет, является ли введенная строка палиндромом:

#include

#include

int main() {

char str[100];

int i, len;

int flag = 0;

printf("Введите строку: ");

scanf("%s", str);

len = strlen(str);

for(i = 0; i < len; i++) {

if(str[i] != str[len - i - 1]) {

flag = 1;

break;

}

}

if (flag) {

printf("%s не является палиндромом.

", str);

}

else {

printf("%s является палиндромом.

", str);

}

return 0;

}

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

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

سؤال وجواب

كيف يمكنني التحقق مما إذا كانت السلسلة متناظرة?

للتحقق مما إذا كانت السلسلة متناظرة ، يمكنك استخدام الطريقة البسيطة التالية في ج:

ما خوارزمية يمكن استخدامها للتحقق من سلسلة لمتلازمة?

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

كيف يمكنني تنفيذ وظيفة تتحقق مما إذا كانت السلسلة متناظرة في ج?

لتنفيذ وظيفة تتحقق مما إذا كانت السلسلة متناظرة ، يمكنك استخدام خوارزمية بسيطة في ج:

ما هي الطرق الأخرى هناك للتحقق من سلسلة متناظرة في ج?

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