Verilen Dize’nin öneklerini verilen karakterlerle değiştirerek oluşturulan Dizeleri Bul

In: Genel


Tartışmayı Görüntüle

Makaleyi İyileştir

Makaleyi Kaydet

Makaleyi Beğen

Tartışmayı Görüntüle

Makaleyi İyileştir

Makaleyi Kaydet

Makaleyi Beğen

Verilen bir Teller ) uzunluk N ve bu String ile, bundan bir üçgen yazdırmamız gerekiyor. Üçgen verilen dize ile başlamalı ve dizenin başından bir karakter çıkarılarak aşağı doğru küçülmeye devam etmelidir. Üçgenin sol tarafındaki boşluklar ile değiştirilmelidir. nokta karakterler ( ‘.’ ).

Örnekler:

Giriş: S = “Geekler”
Çıktı:
inekler
.eeks
..eks
…k
….s

Giriş: S = “Turuncu”
Çıktı:
Turuncu
.Aralık
..kızgınlık
…nge
….ge
…..e

Bunu yazdırmanın 2 yolu var üçgen desen:

  • Döngü için kullanma.
  • Döngü Kullanırken.

Bu yöntemlerin her birini ayrıntılı olarak tartışmaya başlayalım.

Yaklaşmak:

Yaklaşım üç döngü kullanmaktır:

  • Biri satır sayısını kontrol etmektir.
  • İkincisi, String’den önceki noktaları kontrol etmektir.
  • Üçüncüsü, kalan Dizeyi Yazdırmaktır.

Yuvalanmış döngü kavramlarını kullanarak kalıbı kolayca yazdırabiliriz.

Sorunu çözmek için adımları izleyin:

  • S dizesinin girişini alın.
  • Üç döngü kullanın, biri çizgiyi değiştirmek için dış döngüdür ve biri Dize’den önceki noktaları yazdırmak için, diğeri kalan Dize’yi yazdırmak için iki iç döngüdür.
  • bu Dış döngü ( i ) Den çalışır 0 ila uzunluk -1 zamanlar.
    • bu İlk İç döngü Den çalışır 0’dan ben’e nokta karakterini yazdırmak için
    • bu İkinci İç döngü Den çalışır ben uzunluğa – 1 kalan Dizeyi yazdırma zamanı.
    • Bu iki döngüden sonra oluşan dizeyi yazdırın.

For döngüsü kullanarak üçgeni yazdırmak için program aşağıdadır:

C++

#include <bits/stdc++.h>

using namespace std;

void fun(string S)

{

    

    string str = "";

 

    

    int len = S.length();

 

    

    for (int i = 0; i < len; i++) {

        str = "";

 

        

        for (int j = 0; j < i; j++)

            str += ".";

 

        

        for (int j = i; j < len; j++)

            str += S[j];

 

        

        cout << str << "n";

    }

}

 

int main()

{

    string S = "Geeks";

 

    

    fun(S);

 

    return 0;

}

Çıktı

Geeks
.eeks
..eks
...ks
....s

Zaman Karmaşıklığı: ÜZERİNDE2), iç içe döngü olarak kullanılır.
Yardımcı Alan: O(N), çünkü yeni bir dize oluşturuyoruz ve onu yeniden kullanıyoruz.

Aşağıda while döngüsünü kullanarak üçgeni yazdıran program verilmiştir:

C++

#include <bits/stdc++.h>

using namespace std;

void fun(string S)

{

 

    

    string str = "";

 

    

    

    int len = S.length();

 

    

    int i = 0;

    while (i < len) {

        str = "";

 

        

        

        int j = 0;

        while (j < i) {

            str += ".";

            j++;

        }

 

        

        

        int k = i;

        while (k < len) {

            str += S[k];

            k++;

        }

        

        

        cout << str << "n";

 

        

        

        i++;

    }

}

 

int main()

{

    string S = "Geeks";

 

    

    fun(S);

 

    return 0;

}

Çıktı

Geeks
.eeks
..eks
...ks
....s

Zaman Karmaşıklığı: ÜZERİNDE2), iç içe döngü olarak kullanılır.
Yardımcı Alan: O(1), yeni bir dize oluşturduğumuz ve onu yeniden kullandığımız için.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]