یک رشته را معکوس کنید


سطح دشواری ساده
اغلب در Infosys در MAQ o9 راه حل TCS
رشته

بیان مسأله

مسئله "Reverse a String" بیان می کند که یک رشته از اندازه n به شما داده می شود. برنامه ای بنویسید تا معکوس شود. معکوس کردن یک رشته به چه معناست؟ این به طور کلی به معنی معکوس کردن رشته ورودی است که به ما داده شده است. یعنی عملیاتی تعریف می شود که منجر به تغییر موقعیت شخصیت های اصلی در یک کلمه می شود. کاراکتری که در ابتدای رشته وجود دارد به پایان می رسد. به همین ترتیب ، شخصیت های دیگر به یک شکل به شاخص های مختلف می روند (به طور رسمی بیشتر شخصیت با طول رشته -i -1 موقعیت می رود).

مثال

یک رشته را معکوس کنید

TutorialCup
puClairotuT
Akshita
atihskA

روش مبادله

الگوریتم

1. Initialise a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Traverse through the string and swap the starting letter with ending letter until mid is reached.
4. Return the reversed string variable.

تحلیل پیچیدگی

پیچیدگی زمانی

O (N) که n تعداد کاراکترهای کلمه داده شده است. از آنجا که ما فقط ورودی را رد کردیم.

پیچیدگی فضا

O (1) زیرا ما از فضای اضافی ثابت استفاده کردیم ما هیچ رشته یا آرایه ای موقت ایجاد نکردیم.

برای برگرداندن یک رشته کد کنید

برنامه C ++

#include <bits/stdc++.h> 
using namespace std; 
  
string reverse(string s){ 
    int l = s.length(); 
  
    for(int i=0; i<l/2; i++) 
        swap(s[i], s[l-i-1]); 
        
    return s;    
} 
  
int main(){ 
    string s = "TutorialCup"; 
    cout<<reverse(s); 
    return 0; 
}
puClairotuT

برنامه جاوا

class reverseString{
    
    static String reverse(String input)
    { 
        StringBuilder str = new StringBuilder(input); 
        int length = str.length(); 
        for (int i = 0; i < length / 2; i++) 
        { 
            char current = str.charAt(i); 
            int otherEnd = length - i - 1; 
            str.setCharAt(i, str.charAt(otherEnd)); // swap 
            str.setCharAt(otherEnd, current); 
            
        } 
        return str.toString();
    }
    public static void main (String[] args){
        String s = "TutorialCup"; 
        System.out.println(reverse(s));
      }
}
puClairotuT

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

الگوریتم

1. Initialize a string s of length n.
2. Use the inbuilt reverse function on it.
3. Print the reversed string variable.

تحلیل پیچیدگی

پیچیدگی زمانی

O (N) که n تعداد کاراکترهای کلمه داده شده است.

پیچیدگی فضا

O (1) زیرا ما از فضای اضافی ثابت استفاده کردیم

برای برگرداندن یک رشته کد کنید

برنامه C ++

#include <bits/stdc++.h> 
using namespace std; 

int main(){ 
    string s = "TutorialCup"; 
  
    reverse(s.begin(), s.end()); 
  
    cout<<s; 
    return 0; 
}
puClairotuT

برنامه جاوا

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        String s = "TutorialCup"; 
  
        StringBuilder sobj = new StringBuilder(); 
  
        sobj.append(s); 
  
        sobj = sobj.reverse(); 
  
        System.out.println(sobj); 
    } 
}
puClairotuT

چاپ فقط معکوس

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

1. Initialize a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Traverse through the given string variable from the last character to the first character.
4. Print every character of the string variable given.

تحلیل پیچیدگی

پیچیدگی زمانی

O (N) که در آن n تعداد است کاراکتر در کلمه داده شده

پیچیدگی فضا

O (1) زیرا ما از فضای اضافی ثابت استفاده کردیم

برای برگرداندن یک رشته کد کنید

برنامه C ++

#include <bits/stdc++.h> 
using namespace std; 
  
void reverse(string s){ 
   for(int i=s.length()-1; i>=0; i--) 
      cout<<s[i];  
} 
  
int main(){ 
    string s = "TutorialCup"; 
    reverse(s); 
    return 0; 
}
puClairotuT

برنامه جاوا

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        
        String s = "TutorialCup"; 
  
        char[] s1 = s.toCharArray(); 
  
        for(int i=s1.length-1; i>=0; i--) 
            System.out.print(s1[i]); 
    } 
}
puClairotuT

با استفاده از آرایه شخصیت

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

1. Initialize a string s of length n.
2. Create a function to reverse a string that accepts a string variable as it's a parameter.
3. Create a character array and copy the given string variable in it.
4. Traverse through the character array till the mid swapping the starting characters and the ending characters.
5. Return the character array containing the reversed string.

تحلیل پیچیدگی

پیچیدگی زمانی

O (N) که n تعداد کاراکترهای کلمه داده شده است.

پیچیدگی فضا

O (N) زیرا ما از n فضای اضافی استفاده کردیم

برای برگرداندن یک رشته کد کنید

برنامه C ++

#include <bits/stdc++.h> 
using namespace std; 
  
char* reverse(char const* s){ 
    int l = strlen(s); 
  
    char *rev = new char[l+1]; 
  
    strcpy(rev, s); 
  
    for(int i=0, j=l-1; i<j; i++,j--) 
        swap(rev[i], rev[j]);        
      
    return rev; 
} 
  
int main(void){ 
    const char *s = "TutorialCup"; 
    cout<<reverse(s); 
    return (0); 
} 
puClairotuT

برنامه جاوا

import java.lang.*; 
import java.io.*; 
import java.util.*; 
  
class reverseString{
    
    public static void main(String[] args){ 
        String s = "TutorialCup"; 
        char[] temp = s.toCharArray(); 
        int left, right=0; 
        right = temp.length-1; 
  
        for(left=0; left<right ; left++ ,right--){ 
            char t = temp[left]; 
            temp[left] = temp[right]; 
            temp[right]=t; 
        } 
  
        for (char c : temp) 
            System.out.print(c); 
        System.out.println(); 
    } 
}
puClairotuT