الگوی معکوس زیر رشته — راهنمای کاربردی

در این مطلب، روش نوشتن برنامه یافتن الگوی معکوس زیر رشته آموزش داده شده است. رشته str داده شده است. هدف پیدا کردن الگویی است که در مثال زیر مشخص شده است.

مثال:

Input: str = “geeks”
Output:
geeks
*kee*
**e**

معکوس “geeks”، به صورت “skeeg” است. اولین و آخرین کاراکتر با ‘*’ جایگزین می‌شود؛ برای مثال، *kee*. دومین و دومین آخرین کاراکتر در رشته ویرایش شده به صورت **e** خواهد بود و به همین ترتیب.

Input: str = “first”
Output:
first
*sri*
**r**

روش مورد استفاده برای نوشتن برنامه یافتن الگوی معکوس زیر رشته

  • رشته ویرایش نشده را چاپ کن.
  • رشته را معکوس کن و مقداردهی اولیه را به صورت i = 0 و j = n – ۱ انجام بده.
  • s[i] = ‘*’‎ و s[j] = ‘*’ ‎ را جایگزین و i = i + 1 و j = j – ۱ را به روز رسانی کن؛ سپس، رتشه ویرایش شده را چاپ کن.
  • گام‌های بالا را در حالیکه j – i > 1 است، تکرار کن.

در ادامه، پیاده‌سازی رویکرد بالا ارائه شده است.

پیاده‌سازی روش بالا در ++C

// C++ program to print the required pattern 
#include <bits/stdc++.h> 
using namespace std; 
  
// Function to print the required pattern 
void printPattern(char s[], int n) 
{ 
  
    // Print the unmodified string 
    cout << s << "\n"; 
  
    // Reverse the string 
    int i = 0, j = n - 2; 
    while (i < j) { 
        char c = s[i]; 
        s[i] = s[j]; 
        s[j] = c; 
        i++; 
        j--; 
    } 
  
    // Replace the first and last character by '*' then 
    // second and second last character and so on 
    // until the string has characters remaining 
    i = 0; 
    j = n - 2; 
    while (j - i > 1) { 
        s[i] = s[j] = '*'; 
        cout << s << "\n"; 
        i++; 
        j--; 
    } 
} 
  
// Driver code 
int main() 
{ 
    char s[] = "geeks"; 
    int n = sizeof(s) / sizeof(s[0]); 
  
    printPattern(s, n); 
    return 0; 
}

پیاده‌سازی روش بالا در جاوا

// Java program to print the required pattern  
class GFG 
{ 
      
// Function to print the required pattern  
static void printPattern(char[] s, int n)  
{  
    // Print the unmodified string  
    System.out.println(s);  
  
    // Reverse the string  
    int i = 0, j = n - 1;  
    while (i < j)  
    {  
        char c = s[i];  
        s[i] = s[j];  
        s[j] = c;  
        i++;  
        j--;  
    }  
  
    // Replace the first and last character  
    // by '*' then second and second last  
    // character and so on until the string 
    // has characters remaining  
    i = 0;  
    j = n - 1;  
    while (j - i > 1)  
    {  
        s[i] = s[j] = '*';  
        System.out.println(s); 
        i++;  
        j--;  
    }  
}  
  
// Driver Code 
public static void main(String []args) 
{ 
    char[] s = "geeks".toCharArray();  
    int n = s.length;  
  
    printPattern(s, n); 
} 
} 
  
// This code is contributed by Rituraj Jain

پیاده‌سازی روش بالا در پایتون ۳

# Python3 program to print the required pattern  
  
# Function to print the required pattern  
def printPattern(s, n):  
  
    # Print the unmodified string  
    print(''.join(s)) 
  
    # Reverse the string  
    i, j = 0, n - 1
      
    while i < j:  
        s[i], s[j] = s[j], s[i]  
        i += 1
        j -= 1
      
    # Replace the first and last character  
    # by '*' then second and second last  
    # character and so on until the string 
    # has characters remaining  
    i, j = 0, n - 1
      
    while j - i > 1:  
        s[i], s[j] = '*', '*'
        print(''.join(s))  
        i += 1
        j -= 1
  
# Driver code  
if __name__ == "__main__": 
  
    s = "geeks"
    n = len(s) 
  
    printPattern(list(s), n)  
      
# This code is contributed 
# by Rituraj Jain

پیاده‌سازی روش بالا در #C

// C# program to print the required pattern  
using System; 
  
class GFG 
{ 
      
// Function to print the required pattern  
static void printPattern(char[] s, int n)  
{  
    // Print the unmodified string  
    Console.WriteLine(s);  
  
    // Reverse the string  
    int i = 0, j = n - 1;  
    while (i < j)  
    {  
        char c = s[i];  
        s[i] = s[j];  
        s[j] = c;  
        i++;  
        j--;  
    }  
  
    // Replace the first and last character  
    // by '*' then second and second last  
    // character and so on until the string 
    // has characters remaining  
    i = 0;  
    j = n - 1;  
    while (j - i > 1)  
    {  
        s[i] = s[j] = '*';  
        Console.WriteLine(s); 
        i++;  
        j--;  
    }  
}  
  
// Driver Code 
public static void Main(String []args) 
{ 
    char[] s = "geeks".ToCharArray();  
    int n = s.Length;  
  
    printPattern(s, n); 
} 
} 
  
// This code is contributed by 29AjayKumar

خروجی قطعه کد بالا، به صورت زیر است.

geeks
*kee*
**e**

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

منبع [+]

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *