პროგრამა სტრიქონში ყველა სიმბოლოთი გადართვისთვის  


Რთული ტური Easy
ხშირად ეკითხებიან Capgemini ინფოეჯი MAQ ოქსიგენის საფულე
სიმებიანი

პრობლემის განცხადება  

”პროგრამაში სიმბოლოების სიმბოლოების გადართვის პროგრამა” პრობლემში მივეცით სტრიქონი, დაწერეთ პროგრამა მოცემული ყველა სიმბოლოების გადართვისთვის. სიმებიანი. აქ გადართვა ნიშნავს ყველა დიდი სიმბოლოების მცირე და ყველა მცირე სიმბოლოების დიდი ასოების გადაკეთებას.

შეყვანის ფორმატი  

პირველი სტრიქონი, რომელიც შეიცავს სტრიქონს s.

Გამავალი ფორმატი  

დაბეჭდეთ ბოლო სტრიქონი ერთ სტრიქონში.

შეზღუდვები  

  • 1 <= | s | <= 10 ^ 6.
  • s [i] არის სპეციალური ანბანი ან ზედა, მცირე ანბანი.

მაგალითი  

Abcd2#BCDa
aBCD2#bcdA

განმარტება: აქ ჩვენ გადავდივართ მთელ სიმებს ნახშირზე. შეამოწმეთ დიდი ან მცირე ანბანი და შესაბამისად შეცვალეთ იგი. ასე რომ, ყველა სიმბოლოს მონახულების შემდეგ, ბოლო სტრიქონი არის "aBCD2 # bcdA".

სიმბოლოში სიმბოლოების გადართვის ალგორითმი  

  1. ჩაწერეთ მოცემული სტრიქონი s.
  2. გადაკვეთა მთელი სტრიქონი.
  3. შეამოწმეთ s [i] არის დიდი ანბანი, შემდეგ გადაიყვანეთ იგი მცირე ანბანად.
  4.  სხვა თუ s [i] არის მცირე ანბანი, მაშინ გადააქციე იგი ზედა ანბანად.
  5. სხვა არაფერი ქნა, უბრალოდ დატოვე.

განხორციელება  

C ++ პროგრამა სიმების სიმბოლოების გადართვისთვის

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

int main()
{
   string a;
   cin>>a;
   int n=a.length();
   for(int i=0;i<n;i++)
   {
       if(a[i]>='A' && a[i]<='Z')
       {
           a[i]='a'+(a[i]-'A');
       }
       else if(a[i]>='a' && a[i]<='z')
       {
           a[i]='A'+(a[i]-'a');
       }
   }
   cout<<a<<endl;
   return 0;
}

Java პროგრამა სიმბოლოების სიმბოლოების გადართვისთვის

import java.util.Scanner;

class sum { 
    public static void main(String[] args) 
    {
        Scanner sr= new Scanner(System.in);
        String s= sr.next();
        int n = s.length(); 
        char ans[] = s.toCharArray();
        for(int i=0;i<n;i++)
        {
            if(ans[i]>='A' && ans[i]<='Z') 
            { 
                ans[i] = (char) (ans[i]+32);
            } 
            else if(ans[i]>='a' && ans[i]<='z') 
            { 
                ans[i] = (char) (ans[i]-32); 
            }
        }
        for(int i=0;i<n;i++)
        {
            System.out.print(ans[i]);
        }
        System.out.println();
    } 
}
AbCd#aB12
aBcD#Ab12

სირთულის ანალიზი გადართეთ სიმბოლოების სიმები  

დროის სირთულე

O (n) სადაც n მოცემული სტრიქონის ზომაა. აქ ჩვენ უბრალოდ გადავკვეთთ მთელ სტრიქონს და ვაწარმოებთ გარკვეულ ოპერაციებს მუდმივ დროში.

იხილეთ ასევე
პალინდრომიული შედეგების ამოღება Leetcode Solution

სივრცის სირთულე

o (1) რადგან ოპერაციის შესასრულებლად დამატებით ადგილს არ ვიყენებთ.

Reference