هذا شائع جدًا. يبدو الأمر صعبًا، ولكنه ليس سيئًا حقًا بمجرد التفكير فيه.
اكتب دالة جولانج للتحقق مما إذا كانت السلسلة متناظرة.
المتناظر هو سلسلة من الأحرف التي تكون هي نفسها حتى عند عكسها، على سبيل المثال:
"aba" عبارة عن متناظرة
"abb ليس
يعتبر "ab a" متناظرًا بالنسبة لمعظم الناس، لذلك نتجاهل المسافة البيضاء.
func PalindromeCheck(str string) bool { trimmedStr := strings.ReplaceAll(str, " ", "") len := len(trimmedStr) chars := []rune(trimmedStr) for i := 0; iهذا الحل هو من الناحية الوظيفية نفس الحل الذي ستجده في لغة C أو Java عند البحث عبر الإنترنت. نحن نستخدم بشكل أساسي مؤشرات مزدوجة للتنقل من البداية والنهاية بحثًا عن حرف غير متطابق. عندما يتم العثور على عدم تطابق، يمكننا أن نعلن أن السلسلة ليست متناظرة.
يمكننا أن نجعلها أفضل؟
هل هناك طريقة أفضل لتقليص المسافات البيضاء بدلاً من استخدام strings.ReplaceAll؟ (هناك ولكن يمكن أن تصبح قبيحة)
ماذا عن كفاءة التحويل إلى []رون، هل هناك طريقة أفضل؟أضف أفكارك في التعليقات.
شكرًا!
يمكن العثور على رمز هذه المشاركة وجميع المشاركات في هذه السلسلة هنا
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3