מאת יובראג 'צ'נדרה
לַחֲלוֹקצִיוּץאימייל

C ++, Python, C או JavaScript: לא משנה באיזה שימוש תשתמשו באלגוריתם זה כדי לקבוע מחרוזות סימטריות.

מחרוזת היא סימטרית אם שני חצאי המחרוזת זהים. במאמר זה תלמד אלגוריתם כדי לקבוע אם מחרוזת נתונה היא סימטרית או לא. כמו כן, תלמד כיצד ליישם אלגוריתם זה בשפות התכנות הפופולריות ביותר כמו C ++, Python, C ו- JavaScript.

הצהרת בעיה

נותנים לך מחרוזת. עליך לקבוע אם המחרוזת הנתונה היא סימטרית או לא.

דוגמא 1: תן str = "abab".

הנתון סימטרי מכיוון ששני חצאי המחרוזת זהים.

לפיכך, הפלט הוא "כן, המחרוזת הנתונה היא סימטרית".

דוגמה 2: תן str = "גברת".

אם אורך המחרוזת מוזר, התעלם מהתו האמצעי של המחרוזת. לכן, מחצית ראשונה = "מא" וחצי שני = "אם". שני החצאים אינם זהים.

לפיכך, הפלט הוא "לא, המחרוזת הנתונה אינה סימטרית".

דוגמה 3: תנו str = "מאדמה".

מחצית ראשונה = "מא" וחצי שנייה = "מא". שני חצאי המחרוזת זהים.

לפיכך, הפלט הוא "כן, המחרוזת הנתונה היא סימטרית".

אלגוריתם לקביעה אם מחרוזת נתונה היא סימטרית או לא

תוכל לקבוע אם מחרוזת נתונה היא סימטרית או לא על ידי ביצוע הגישה שלהלן:

instagram viewer
  1. מצא את אורך המחרוזת.
  2. מצא את האינדקס של המחרוזת.
    • אם אורך המחרוזת שווה, midIndex = אורך/2.
    • אם אורך המחרוזת מוזר, midIndex = (אורך / 2) + 1. במקרה זה, התו האמצעי של המחרוזת מתעלם לצורך השוואה.
  3. אתחל שני משתני מצביע מצביע 1 ו מצביע 2. מצביע 1 יאחסן את אינדקס התו הראשון (0) של המחרוזת ו- מצביע 2 יאחסן את אינדקס התו האמצעי (midIndex) של המחרוזת.
  4. כעת השווה את התווים המתאימים של שני חצאי המחרוזת באמצעות a בזמן לוּלָאָה. הפעל א בזמן לולאה עד מצביע 1.
  5. השווה את התווים המתאימים באינדקסים מצביע 1 ו מצביע 2.
  6. אם נמצאה דמות מקבילה שונה, חזור שֶׁקֶר. ואם לא נמצאו תווים מתאימים, חזור נָכוֹן.
  7. כמו כן, הקפד להגדיל את הערך של מצביע 1 ו מצביע 2 בכל איטרציה.

תוכנית C ++ לקבוע אם מחרוזת נתונה סימטרית או לא

להלן תוכנית C ++ כדי לקבוע אם מחרוזת נתונה היא סימטרית או לא:

// תוכנית C ++ כדי לבדוק אם המחרוזת סימטרית או לא
#לִכלוֹל
באמצעות מרחב שמות std;
// פונקציה לבדיקת המחרוזת סימטרית או לא
bool isSymmetric (string string)
{
int midIndex;
אורך int = strllength ();
// אם אורך המחרוזת שווה
אם (אורך % 2 == 0)
{
midIndex = אורך/2;
}
// אם אורך המחרוזת מוזר
אַחֵר
{
midIndex = אורך/2 + 1;
}
int pointer1 = 0;
int pointer2 = midIndex;
תוך (מצביע 1{
אם (str [מצביע 1] == str [מצביע 2])
{
מצביע 1 += 1;
מצביע 2 += 1;
}
אַחֵר
{
להחזיר שקר;
}
}
להחזיר נכון;
}
// קוד נהג
int main ()
{
// מקרה מבחן: 1
string str1 = "abab";
cout << "מחרוזת 1:" << str1 << endl;
אם (isSymmetrical (str1))
{
cout << "כן, המחרוזת הנתונה היא סימטרית" << endl;
}
אַחֵר
{
cout << "לא, המחרוזת הנתונה אינה סימטרית" << endl;
}
// מקרה מבחן: 2
string str2 = "גברת";
cout << "מחרוזת 2:" << str2 << endl;
אם (isSymmetrical (str2))
{
cout << "כן, המחרוזת הנתונה היא סימטרית" << endl;
}
אַחֵר
{
cout << "לא, המחרוזת הנתונה אינה סימטרית" << endl;
}
// מקרה מבחן: 3
string str3 = "מאדמה";
cout << "מחרוזת 3:" << str3 << endl;
אם (isSymmetrical (str3))
{
cout << "כן, המחרוזת הנתונה היא סימטרית" << endl;
}
אַחֵר
{
cout << "לא, המחרוזת הנתונה אינה סימטרית" << endl;
}
// מקרה מבחן: 4
string str4 = "אזרחית";
cout << "מחרוזת 4:" << str4 << endl;
אם (isSymmetrical (str4))
{
cout << "כן, המחרוזת הנתונה היא סימטרית" << endl;
}
אַחֵר
{
cout << "לא, המחרוזת הנתונה אינה סימטרית" << endl;
}
// מקרה מבחן: 5
string str5 = "khokho";
cout << "מחרוזת 5:" << str5 << endl;
אם (isSymmetrical (str5))
{
cout << "כן, המחרוזת הנתונה היא סימטרית" << endl;
}
אַחֵר
{
cout << "לא, המחרוזת הנתונה אינה סימטרית" << endl;
}
החזר 0;
}

תְפוּקָה:

מחרוזת 1: abab
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 2: גברת
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 3: מאדמה
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 4: אזרחית
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 5: ח'וקו
כן, המחרוזת הנתונה היא סימטרית

קָשׁוּר: כיצד להפוך מחרוזת ב- C ++, Python ו- JavaScript

תוכנית פייתון כדי לקבוע אם מחרוזת נתונה סימטרית או לא

להלן תוכנית Python כדי לקבוע אם מחרוזת נתונה היא סימטרית או לא:

# תוכנית פייתון כדי לבדוק אם המחרוזת סימטרית או לא
# פונקציה כדי לבדוק אם המחרוזת סימטרית או לא
def isSymmetrical (str):
midIndex = 0
אורך = לן (str)
אם אורך%2 == 0:
midIndex = אורך // 2
אַחֵר:
midIndex = אורך // 2 + 1
מצביע 1 = 0
מצביע 2 = midIndex
בעוד מצביע 1אם (str [מצביע 1] == str [מצביע 2]):
מצביע 1 += 1
מצביע 2 += 1
אַחֵר:
להחזיר שקר
להחזיר נכון
# מקרה מבחן: 1
str1 = "abab"
print ("מחרוזת 1:", str1)
אם (isSymmetrical (str1)):
הדפס ("כן, המחרוזת הנתונה היא סימטרית")
אַחֵר:
print ("לא, המחרוזת הנתונה אינה סימטרית")
# מקרה מבחן: 2
str2 = "גברת"
print ("מחרוזת 2:", str2)
אם (isSymmetrical (str2)):
הדפס ("כן, המחרוזת הנתונה היא סימטרית")
אַחֵר:
print ("לא, המחרוזת הנתונה אינה סימטרית")
# מקרה מבחן: 3
str3 = "גברת"
print ("מחרוזת 3:", str3)
אם (isSymmetrical (str3)):
הדפס ("כן, המחרוזת הנתונה היא סימטרית")
אַחֵר:
print ("לא, המחרוזת הנתונה אינה סימטרית")
# מקרה מבחן: 4
str4 = "אזרחית"
print ("מחרוזת 4:", str4)
אם (isSymmetrical (str4)):
הדפס ("כן, המחרוזת הנתונה היא סימטרית")
אַחֵר:
print ("לא, המחרוזת הנתונה אינה סימטרית")
# מקרה מבחן: 5
str5 = "ח'וקו"
print ("מחרוזת 5:", str5)
אם (isSymmetrical (str5)):
הדפס ("כן, המחרוזת הנתונה היא סימטרית")
אַחֵר:
print ("לא, המחרוזת הנתונה אינה סימטרית")

תְפוּקָה:

מחרוזת 1: abab
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 2: גברת
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 3: מאדמה
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 4: אזרחית
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 5: ח'וקו
כן, המחרוזת הנתונה היא סימטרית

קָשׁוּר: לומדים פייתון? להלן אופן מניפולציה של מחרוזות

תוכנית JavaScript כדי לקבוע אם מחרוזת נתונה היא סימטרית או לא

להלן תוכנית JavaScript כדי לקבוע אם מחרוזת נתונה היא סימטרית או לא:

// תוכנית JavaScript כדי לבדוק אם המחרוזת סימטרית או לא
// פונקציה לבדיקת המחרוזת סימטרית או לא
הפונקציה isSymmetrical (str) {
var midIndex;
אורך var = str.length;
// אם אורך המחרוזת שווה
if (אורך % 2 == 0) {
midIndex = Math.floor (אורך/2);
}
// אם אורך המחרוזת מוזר
אחר {
midIndex = Math.floor (אורך/2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
תוך (מצביע 1if (str [מצביע 1] == str [מצביע 2]) {
מצביע 1 += 1;
מצביע 2 += 1;
} אחר {
להחזיר שקר;
}
}
להחזיר נכון;
}
// מקרה מבחן: 1
var str1 = "abab";
document.write ("מחרוזת 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("כן, המחרוזת הנתונה היא סימטרית" + "
");
} אחר {
document.write ("לא, המחרוזת הנתונה אינה סימטרית" + "
");
}
// מקרה מבחן: 2
var str2 = "גברת";
document.write ("מחרוזת 2:" + str2 + "
");
אם (isSymmetrical (str2)) {
document.write ("כן, המחרוזת הנתונה היא סימטרית" + "
");
} אחר {
document.write ("לא, המחרוזת הנתונה אינה סימטרית" + "
");
}
// מקרה מבחן: 3
var str3 = "מאדמה";
document.write ("מחרוזת 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("כן, המחרוזת הנתונה היא סימטרית" + "
");
} אחר {
document.write ("לא, המחרוזת הנתונה אינה סימטרית" + "
");
}
// מקרה מבחן: 4
var str4 = "אזרחית";
document.write ("מחרוזת 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("כן, המחרוזת הנתונה היא סימטרית" + "
");
} אחר {
document.write ("לא, המחרוזת הנתונה אינה סימטרית" + "
");
}
// מקרה מבחן: 5
var str5 = "khokho";
document.write ("מחרוזת 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("כן, המחרוזת הנתונה היא סימטרית" + "
");
} אחר {
document.write ("לא, המחרוזת הנתונה אינה סימטרית" + "
");
}

תְפוּקָה:

מחרוזת 1: abab
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 2: גברת
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 3: מאדמה
כן, המחרוזת הנתונה היא סימטרית
מחרוזת 4: אזרחית
לא, המחרוזת הנתונה אינה סימטרית
מחרוזת 5: ח'וקו
כן, המחרוזת הנתונה היא סימטרית

קָשׁוּר: כיצד למצוא את הדמות הנפוצה ביותר במחרוזת

לפתור בעיות המבוססות על מיתרים

מיתרים הם אחד הנושאים החשובים ביותר לראיונות תכנות. עליך לפתור כמה מבעיות התכנות המפורסמות המבוססות על מחרוזות כמו לבדוק אם מחרוזת היא פלינדרום, בדוק אם שני מחרוזות הן אנאגרמות זו של זו, מצא את התו הנפוץ ביותר במחרוזת, הפוך מחרוזת, וכו ' אם אתה רוצה להיות מוכן לחלוטין.

לַחֲלוֹקצִיוּץאימייל
כיצד לבדוק אם מחרוזת היא פלינדרום

האם המחרוזת שלך היא פלינדרום? בין אם אתה משתמש ב- Python, C ++ או JavaScript, השתמש באחד האלגוריתמים האלה כדי לברר.

קרא הבא

נושאים קשורים
  • תִכנוּת
  • JavaScript
  • פִּיתוֹן
  • הדרכות קידוד
  • C תכנות
על הסופר
יוברג 'צ'נדרה (פורסמו 50 מאמרים)

יובראג 'הוא סטודנט לתואר ראשון במדעי המחשב באוניברסיטת דלהי, הודו. הוא נלהב מ- Full Stack Web Development. כשהוא לא כותב, הוא בוחן את עומק הטכנולוגיות השונות.

עוד מאת Yuvraj Chandra

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה