يمكن أن يكون الصف المقلوب مفيدا للمهام المختلفة. على سبيل المثال ، قد ترغب في عرض النص بترتيب عكسي أو التحقق مما إذا كانت السلسلة متناظرة. في هذه المقالة ، سننظر في عدة طرق لقلب سلسلة بلغات برمجة مختلفة.
واحدة من أسهل الطرق لقلب سلسلة هي استخدام حلقة للذهاب من خلال السلسلة بأكملها من النهاية إلى البداية وإضافة كل حرف إلى سطر جديد. تعمل هذه الطريقة في معظم لغات البرمجة ويمكن تنفيذها باستخدام التركيبات النحوية الأساسية.
طريقة أخرى هي استخدام الوظائف المضمنة التي توفرها بعض لغات البرمجة. على سبيل المثال ، في بيثون يمكنك استخدام وظيفة عكس() لقلب سلسلة ، وفي جافا سكريبت يمكنك استخدام وظيفة تقسيم() لتقسيم سلسلة إلى مجموعة من الأحرف ، ثم وظيفة عكس() لعكس ترتيب عناصر الصفيف.
تجدر الإشارة أيضا إلى أن هناك وظائف متخصصة للعمل مع السلاسل التي يمكن أن توفر حلولا أكثر فعالية لمهام محددة. على سبيل المثال ، تحتوي بعض لغات البرمجة على وظائف تسمح لك بقلب سلسلة في عملية واحدة دون استخدام حلقات أو ذاكرة إضافية.
في هذه المقالة ، سنلقي نظرة على أمثلة التعليمات البرمجية بلغات البرمجة المختلفة التي توضح كيفية قلب الخط ، وكذلك التحدث عن الوظائف والمكتبات المتخصصة التي يمكن أن تساعد في حل مثل هذه المشكلات.
- نصائح لتقليب سلسلة
- باستخدام حلقة
- التقليب سلسلة باستخدام العودية
- باستخدام الطريقة العكسية ()
- باستخدام الانقسام()والانضمام ()
- الطريقة باستخدام طريقة شارات () أو الوصول حرفا بحرف
- باستخدام طريقة كونكات ()
- استخدام وظائف المكتبة
- اقلب خطا بلغة بايثون وجافا سكريبت ولغات البرمجة الأخرى
- بايثون
- جافا سكريبت
- لغات البرمجة الأخرى
- خاتمة
- سؤال وجواب
نصائح لتقليب سلسلة
يعد قلب السطر مهمة يمكن لأي مطور مواجهتها. في هذا القسم ، سنلقي نظرة على بعض النصائح المفيدة التي ستساعدك على قلب السلسلة بشكل فعال.
- استخدم مجموعة من الأحرف: واحدة من أسهل الطرق لقلب سلسلة هي تحويلها إلى مجموعة من الأحرف ، ثم إعادة ترتيب عناصر المصفوفة بترتيب عكسي. هذا النهج مفيد بشكل خاص إذا كنت تعمل بلغة برمجة توفر طرقا ملائمة للعمل مع المصفوفات.
- استخدم عمليات البت: بالنسبة لبعض لغات البرمجة ، مثل ج أو ج++ ، يمكن أن تكون عمليات البت طريقة فعالة لقلب سلسلة. نهج واحد هو استخدام عملية حصرية أو ( ^ ) مع اثنين من المؤشرات ، واحد يشير إلى بداية السلسلة والآخر إلى النهاية. من خلال تحريك المؤشرات نحو بعضها البعض وإجراء عملية حصرية أو بين الأحرف المقابلة ، يمكنك تحقيق النتيجة المرجوة.
- استخدام العودية: العودية هي طريقة أخرى مثيرة للاهتمام لتقليب سلسلة. يمكنك كتابة دالة متكررة تعكس سلسلة فرعية من سلسلة ثم تسلسل النتائج. قد يكون هذا النهج أنيقا ، ولكن ضع في اعتبارك أنه قد يكون غير فعال للسلاسل الطويلة جدا بسبب قيود مكدس الاستدعاءات.
بالإضافة إلى النصائح الأساسية أعلاه ، هناك طرق أخرى لقلب سلسلة ، اعتمادا على المتطلبات والقدرات المحددة للغة البرمجة التي تعمل بها. راجع الوثائق وموارد المجتمع لمزيد من المعلومات والتطبيقات المحددة لهذه الأساليب.
بغض النظر عن النهج الذي تختاره ، ضع في اعتبارك الحاجة إلى التعامل مع الأحرف الخاصة ومعالجة السلسلة الفارغة الحساسة لحالة الأحرف. اختبار التعليمات البرمجية بدقة وتأكد من أنه يعمل بشكل صحيح في جميع السيناريوهات الممكنة.
يمكن أن يكون قلب الخط مهمة بسيطة أو صعبة اعتمادا على خبرتك ومتطلبات المشروع ، ولكن باستخدام هذه النصائح ستتمكن من القيام بذلك بشكل أكثر كفاءة ونجاحا.
باستخدام حلقة
طريقة أخرى لقلب سلسلة هي استخدام حلقة. هذا النهج يسمح لك لتكرار على جميع الشخصيات ووضعها في ترتيب عكسي.
للقيام بذلك ، يمكنك استخدام حلقات مختلفة ، على سبيل المثال ، حلقة أو أثناء. فيما يلي مثال على استخدام حلقة:
وظيفة عكسسترينغوسينغلوب (ستر) {
دع السلسلة العكسية = ";
ل (اسمحوا لي = شارع.الطول-1 ؛ أنا > = 0 ؛ أنا--) {
سلسلة عكسية + = شارع [أنا];
}
عودة عكسهاسلسلة;
}
اسمحوا ميسترينغ = ' مرحبا ، العالم!';
السماح ريفيرسيدسترينغ = ريفيرسيسترينغسينغلوب (ميسترينغ);
وحدة التحكم.سجل (سلسلة عكسية);
. تستمر الحلقة حتى يتم تكرار جميع أحرف السلسلة. ثم يتم إرجاع السلسلة المقلوبة الناتجة.
وبالتالي ، باستخدام حلقة،يمكنك بسهولة قلب السلسلة.
التقليب سلسلة باستخدام العودية
العودية هي العملية التي تستدعي بها الوظيفة نفسها. إنها أداة برمجة قوية للغاية ويمكن استخدامها في مهام مختلفة ، بما في ذلك قلب سلسلة.
لقلب سلسلة باستخدام العودية ، يمكننا استخدام الخوارزمية التالية:
- إذا كان طول السلسلة 0 أو 1 ، فإننا نعيد السلسلة نفسها.
- خلاف ذلك ، نسمي الدالة بشكل متكرر لسلسلة فرعية تتكون من جميع الأحرف باستثناء الأول ، ثم نضيف الحرف الأول إلى النهاية.
هنا مثال على شفرة جافا سكريبت التي تنفذ هذه الخوارزمية:
| جافا سكريبت: | |
كحجة. إذا كان طول السلسلة 0 أو 1 ، تقوم الدالة بإرجاع السلسلة نفسها. خلاف ذلك ، فإن الوظيفة تستدعي نفسها لسلسلة فرعية
شارع.شريحة (1)
(الذي يحتوي على جميع الأحرف باستثناء الحرف الأول) ويتسلسل مع الحرف الأول
شارع [0]
.
تستمر هذه العملية بشكل متكرر حتى يصبح طول السلسلة 0 أو 1 ، وبعد ذلك يتم إرجاع السلسلة المقلوبة.
نتيجة لذلك ، عند الاتصال
عكس ("مرحبا ، العالم!")
، سيتم إخراج" روما ، تيفيرب"
.
قد يبدو استخدام العودية لقلب سلسلة غير عادي ، لكنه يوضح قوة ومرونة هذا النهج في البرمجة.
باستخدام الطريقة العكسية ()
لقلب سلسلة في جافا سكريبت ، يمكنك استخدام الطريقة العكسية (). تسمح لك هذه الطريقة بعكس ترتيب الأحرف في سلسلة.
مثال على استخدام الطريقة العكسية() :
دعونا شارع = " مرحبا ، العالم!";
اسمحوا ريفيرسيدستر = شارع . انقسام ("").عكس ().انضم ("");
وحدة التحكم.سجل (عكس)؛//!روما ، تيفيرب
في هذا المثال ، نقوم أولا بتحويل سلسلة إلى مصفوفة من الأحرف باستخدام طريقة الانقسام (). ثم نسمي الطريقة العكسية () لعكس ترتيب عناصر المصفوفة. وأخيرا ، باستخدام طريقة الانضمام () ، نقوم بدمج عناصر المصفوفة مرة أخرى في سلسلة.
- يمكن استخدام أساليب الانقسام() والانضمام () معا لقلب سلسلة. دعونا ننظر في إمكانياتهم.
نتيجة لتنفيذ التعليمات البرمجية ، سيتم إخراج صفيف:
- من "تقسيم"
- "سلسلة"
كلمات كونست = ["مثال" ، "فصل" ، "سلاسل"];
كونست النص = الكلمات.انضم ("");
وحدة التحكم.سجل (نص);
- نتيجة لتنفيذ التعليمات البرمجية ، سيتم إخراج الخط:
- يتيح لك استخدام أساليب الانقسام () والانضمام () معا قلب سلسلة. للقيام بذلك ، تحتاج إلى:
- ') فاصل. نحصل على مجموعة من السلاسل الفرعية.
|
"مثال على تقسيم سلسلة" |
تقسيم سلسلة المصدر إلى سلاسل فرعية باستخدام سبليت () ، وتحديد حرف تغذية الخط (' |
استخدم الطريقة العكسية () لعكس ترتيب عناصر المصفوفة.
الجمع بين عناصر الصفيف في سلسلة باستخدام الانضمام () ، وتحديد حرف تغذية الخط ('
') فاصل. نحصل على سلسلة مقلوبة.
كونست النص = "الوجه الخط: نصائح وطرق";
كونست ريفيرسدتكست = النص.انقسام (").عكس ().انضم (");
وحدة التحكم.سجل (عكس النص);
نتيجة لتنفيذ التعليمات البرمجية ، سيتم عرض السطر:
"يبوسوربس و ييتيفوسبيرتسيفوريب"
وبالتالي ، فإن أساليب الانقسام () والانضمام () هي طريقة ملائمة لقلب سلسلة في جافا سكريبت.
باستخدام طريقة شارات () أو الوصول حرفا بحرف
إذا كنت تريد قلب سلسلة ، يمكنك استخدام طريقة الشارات () أو الوصول إلى الأحرف حسب الفهرس.تقوم طريقة الشارات () بإرجاع حرف سلسلة في الفهرس المحدد. تتيح لك هذه الطريقة الوصول إلى كل حرف في سلسلة ثم استخدام هذه الأحرف لإنشاء سلسلة جديدة بترتيب عكسي.
مثال على استخدام طريقة الشارات() :
إنشاء متغير جديد وتعيين سلسلة فارغة:
دع السلسلة العكسية ="";
استخدم ل حلقة للتكرار من خلال جميع الأحرف في سلسلة المصدر:
ل (اسمحوا لي = شارع.الطول-1 ؛ أنا > = 0 ؛ أنا--) {
داخل الحلقة ، استخدم طريقة شارات () للحصول على حرف السلسلة حسب الفهرس وإضافته إلى متغير ريفيرسيدسترينغ:
سلسلة عكسية + = شارع.شارات (الجزء الأول);
أكمل الحلقة:
}
ستكون النتيجة في متغير السلسلة العكسي.
نموذج التعليمات البرمجية:
وظيفة عكس (شارع) {
دع السلسلة العكسية = "";
ل (اسمحوا لي = شارع.الطول-1 ؛ أنا > = 0 ؛ أنا--) {
سلسلة عكسية + = شارع.شارات (الجزء الأول);
}
عودة عكسهاسلسلة;
}
وحدة التحكم.سجل (عكس ("مرحبا ، العالم!")); // !روما ، تيفيرب
يمكنك أيضا الرجوع إلى أحرف السلسلة حسب الفهرس باستخدام الأقواس المربعة:
شارع [ط]
Пример использования посимвольного доступа:
function reverseString(str) {
let reversedString = "";
for (let i = str.length - 1; i >= 0; i--) {
reversedString += str[i];
}
return reversedString;
}
console.log(reverseString("Привет, мир!")); // !рим ,тевирП
كلا النهجين تعطي نفس النتيجة ، ولكن باستخدام طريقة شارات () هو أكثر وضوحا ويمكن أن تكون مفيدة في بعض الحالات ، على سبيل المثال ، عندما تحتاج إلى الوصول إلى حرف من قبل فهرسها والحصول على مزيد من السيطرة على عملية السلسلة.
باستخدام طريقة كونكات ()
طريقة كونكات () هي واحدة من الطرق لقلب سلسلة في جافا سكريبت. فهو يجمع بين سطرين أو أكثر في سطر واحد جديد.
يتطلب استخدام طريقة كونكات () لقلب سلسلة إنشاء سلسلة فارغة ثم إضافة أحرف من السلسلة الأصلية إليها بترتيب عكسي.
يوجد أدناه مثال على استخدام طريقة كونكات () لقلب سلسلة:
"`
كونست شارع = ' مرحبا ، العالم!’;
دع ريفيريدستر = ";
ل (اسمحوا لي = شارع.الطول-1 ؛ أنا >= 0 ؛ أنا—) {
ريفيرسدستر = ريفيرسدستر.كونكات (شارع [ط]);
}
وحدة التحكم.سجل (عكس);
«`
نتيجة لتنفيذ هذا الرمز ، سيتم إخراج خط مقلوب إلى وحدة التحكم:"!روما ، تيفيرب".
يمكن أيضا استخدام طريقة كونكات () لدمج سلاسل متعددة دون الحاجة إلى قلبها:
"`
كونست ستري1 = 'مرحبا,'
كونست ستري2 = ' السلام!’;
كونست كومبينيدستر = ستر1.كونكات (ستر 2);
وحدة التحكم.سجل (كومبينيدستر);
سلسلة عكسية =".تاريخ (قائمة (سلسلة) [::-1])
طباعة (عكس_سلسلة)
في جافا سكريبت ، هناك طريقة تقسيم () تقوم بتحويل سلسلة إلى مصفوفة من الأحرف ، وطريقة عكسية () تغير ترتيب العناصر في المصفوفة. يمكن بعد ذلك تحويل المصفوفة مرة أخرى إلى سلسلة باستخدام طريقة الانضمام (). هنا مثال رمز:
سلسلة كونست = "مثال على سلسلة لقلبها";
هناك عدة طرق لقلب سلسلة في بايثون. واحدة من أسهل الطرق هي استخدام الشرائح. تسمح لنا الشرائح بالحصول على سلاسل فرعية من سلسلة.
سلسلة = " مرحبا ، العالم!"
عكس_سلسلة = سلسلة [:: -1]
طباعة (عكس_سلسلة)
في هذا الرمز ، نحدد شريحة بخطوة سلبية ، مما يعني أننا نأخذ الأحرف بترتيب عكسي. ستكون النتيجة سلسلة مقلوبة"دلو ، أوليه".
جافا سكريبت
في جافا سكريبت ، يمكننا استخدام
طريقة الانقسام
لتقسيم سلسلة إلى مجموعة من العناصر و
الطريقة العكسية
لعكس ترتيب العناصر في المصفوفة ، ثم الطريقة
انضم
لدمج عناصر المصفوفة مرة أخرى في سلسلة.
طريقة الانقسام
. ثم نقوم بعكس ترتيب العناصر في المصفوفة باستخدام
الطريقة العكسية