Jadual Kandungan
Ini adalah algoritma yang mungkin untuk beroperasi pada rentetan supaya semua subrentetan adalah berbeza sambil meminimumkan perubahan.
Dalam sintaks ini kita dapat melihat cara membuat perubahan minimum pada rentetan supaya semua subrentetan adalah berbeza.
Kaedah 1− Cari bilangan minimum perubahan yang menjadikan semua subrentetan rentetan berbeza.
Dalam kaedah ini, kita akan belajar cara membuat semua subrentetan berbeza. Di sini, setiap watak mesti berbeza. Kita hanya perlu mencari bilangan aksara. Jika panjang rentetan lebih daripada 26, maka kita hanya perlu menukarnya kepada rentetan. Di sini kita akan menulis logik yang sama di tempat yang berbeza.
Output
Contoh 2: Dengan menggunakan Java
Contoh 1: Menggunakan Python
Kesimpulan
Hari ini, dalam artikel ini, kami belajar cara membuat semua subrentetan berbeza dengan perubahan yang minimum. Di sini kami telah mencipta beberapa kod yang mungkin dengan mengikuti algoritma yang diterangkan dalam C++, Java dan Python. Semoga ini membantu anda memperoleh pemahaman yang lebih menyeluruh tentang subjek tersebut.
Rumah pembangunan bahagian belakang C++ Ubah suai rentetan secara minimum supaya semua subrentetan berbeza

Ubah suai rentetan secara minimum supaya semua subrentetan berbeza

Sep 04, 2023 pm 02:49 PM
rentetan subrentetan perubahan yang minimum

Ubah suai rentetan secara minimum supaya semua subrentetan berbeza

Rentetan ialah jenis objek tertentu yang mewakili jujukan dan aliran aksara data. Rentetan ialah bekas data, sentiasa diwakili dalam format teks. Ia juga digunakan untuk operasi konseptual, perbandingan, belah, gabungkan, ganti, potong, panjang, dalaman, kesamaan, perbandingan dan subrentetan. substring() ialah proses penapisan data yang mengekstrak data antara data yang disimpan dari awal hingga akhir. substring() tidak mengubah rentetan asal. Dalam set data, apabila kita mempunyai aksara yang berbeza, ia boleh diwakili sebagai elemen data yang berbeza. Contohnya: 'a' dan 'r' adalah berbeza, manakala 'r' dan 'r' adalah sama. Jadi, rentetan katakan, oren mengandungi 6 aksara yang berbeza. Begitu juga, epal rentetan mengandungi hanya 4 aksara yang berbeza.

Andaikan, "s" ialah rentetan, dan kita perlu mencari bilangan minimum perubahan yang diperlukan untuk semua subrentetan untuk menjadikan rentetan itu berbeza.

  • Panjang tali - 26

  • Input yang diberikan − T ialah kes ujian bagi baris pertama, iaitu integer. Untuk setiap kes ujian, hanya akan ada satu baris yang mengandungi 26 aksara.

  • Output - Kami akan mendapat bilangan perubahan minimum untuk setiap kes ujian.

  • Kekangan aliran kaedah logik

    • 1

    • 1

  • Dalam artikel hari ini, kita akan belajar cara mengubah suai rentetan supaya semua subrentetan berbeza.

Algoritma untuk membuat subrentetan berbeza

Ini adalah algoritma yang mungkin untuk beroperasi pada rentetan supaya semua subrentetan adalah berbeza sambil meminimumkan perubahan.

    Langkah pertama - mulakan.
  • Langkah 2 − Gunakan dua gelung bersarang untuk menjana subrentetan.
  • Langkah 3 - Gelung luar bermula dari i = 0 dan tolak panjang rentetan dengan 1.
  • Langkah 4 - Gelung dalam bermula dari j = 0 dan tolak panjang rentetan dengan 1.
  • Langkah 5 − Bina pembolehubah kiraan menggunakan nilai sifar.
  • Langkah 6− Di dalam gelung luar, cipta pembolehubah_ciri yang tersendiri.
  • Langkah 7 - Buat tatasusunan frekuensi.
  • Langkah 8− Tetapkan semua elemen sifar.
  • Langkah 9 - Semak sama ada kekerapan rentetan[j] - 'a' ialah sifar.
  • Langkah 10− Jika sifar, tambahkan 1.
  • Langkah 11− Jika tidak, pecahkannya menjadi gelung dalam.
  • Langkah 12 - Jika kiraan lebih besar daripada sifar, kembalikan kiraan.
  • Langkah 13 - Jika tidak, kembalikan -1.
  • Langkah 14 - Penamatan.
  • Sintaks untuk mencipta semua subrentetan berbeza
string.substring(start, end)
Salin selepas log masuk

Dalam sintaks ini kita dapat melihat cara membuat perubahan minimum pada rentetan supaya semua subrentetan adalah berbeza.

    Parameter
    • Mula - Kedudukan permulaan perlu diisytiharkan. Indeks aksara pertama di sini ialah 0.
    • Tamat − Ia adalah proses pilihan yang terletak di hujung (termasuk tetapi tidak terhad kepada).
    Kaedah

Kaedah 1− Cari bilangan minimum perubahan yang menjadikan semua subrentetan rentetan berbeza.

Cari bilangan minimum perubahan supaya semua subrentetan rentetan menjadi berbeza

Dalam kaedah ini, kita akan belajar cara membuat semua subrentetan berbeza. Di sini, setiap watak mesti berbeza. Kita hanya perlu mencari bilangan aksara. Jika panjang rentetan lebih daripada 26, maka kita hanya perlu menukarnya kepada rentetan. Di sini kita akan menulis logik yang sama di tempat yang berbeza.

Contoh 1: Menggunakan C++

#include <bits/stdc++.h>
using namespace std;
const int MAX_CHAR = 26;
int minChanges(string &str) {
   int n = str.length();
   if (n > MAX_CHAR)
   return -1;
   int dist_count = 0;
   int count[MAX_CHAR] = {0};
   for (int i = 0; i < n; i++) {
      if (count[str[i] - 'a'] == 0)
      dist_count++;
      count[(str[i] - 'a')]++;
   }
   return (n - dist_count);
}
int main() {
   string str = "aebaecedabbeedee";
   cout << minChanges(str);
   return 0;
}
Salin selepas log masuk

Output

11
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh 2: Dengan menggunakan Java

import java.lang.*;
import java.util.*;
public class tutorialspoint {
   static final int MAX_CHAR = 26;
   public static int minChanges(String str) {
      int n = str.length();
      if (n > MAX_CHAR)
      return -1;
      int dist_count = 0;
      int count[] = new int[MAX_CHAR];
      for(int i = 0; i < MAX_CHAR; i++)
      count[i] = 0;
      for (int i = 0; i < n; i++) {
         if(count[str.charAt(i)-'a'] == 0)
         dist_count++;
         count[str.charAt(i)-'a']++;
      }
      return (n-dist_count);
   }
   public static void main (String[] args) {
      String str = "aebaecedabbeedee";
      System.out.println(minChanges(str));
   }
}
Salin selepas log masuk

Output

11
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Contoh 1: Menggunakan Python

MAX_CHAR = [26]
def minChanges(str):

	n = len(str )
	if (n > MAX_CHAR[0]):
		return -1
	dist_count = 0
	count = [0] * MAX_CHAR[0]

	for i in range(n):
		if (count[ord(str[i]) - ord('a')] == 0) :
			dist_count += 1
		count[(ord(str[i]) - ord('a'))] += 1
	return (n - dist_count)
if __name__ == '__main__':
	str = "aebaecedabbeedee"
	print(minChanges(str))
	
Salin selepas log masuk

Output

11
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kesimpulan

Hari ini, dalam artikel ini, kami belajar cara membuat semua subrentetan berbeza dengan perubahan yang minimum. Di sini kami telah mencipta beberapa kod yang mungkin dengan mengikuti algoritma yang diterangkan dalam C++, Java dan Python. Semoga ini membantu anda memperoleh pemahaman yang lebih menyeluruh tentang subjek tersebut.

Atas ialah kandungan terperinci Ubah suai rentetan secara minimum supaya semua subrentetan berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Mar 26, 2024 am 11:45 AM

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Dalam pembangunan PHP, kita sering menghadapi keperluan untuk menukar jenis int kepada jenis rentetan. Penukaran ini boleh dicapai dalam pelbagai cara Artikel ini akan memperkenalkan beberapa kaedah biasa secara terperinci, dengan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Gunakan fungsi terbina dalam PHP strval(). PHP menyediakan fungsi terbina dalam strval() yang boleh menukar pembolehubah jenis yang berbeza kepada jenis rentetan. Apabila kita perlu menukar jenis int kepada jenis rentetan,

Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Mar 12, 2024 pm 04:48 PM

Tajuk: Bagaimana untuk menentukan sama ada rentetan berakhir dengan aksara tertentu dalam Golang Dalam bahasa Go, kadangkala kita perlu menentukan sama ada rentetan berakhir dengan aksara tertentu Ini adalah perkara biasa semasa memproses rentetan. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan fungsi ini dan memberikan contoh kod untuk rujukan anda. Mula-mula, mari kita lihat cara untuk menentukan sama ada rentetan berakhir dengan aksara tertentu dalam Golang. Aksara dalam rentetan dalam Golang boleh diperoleh melalui pengindeksan, dan panjang rentetan itu boleh

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Apr 02, 2024 pm 03:58 PM

1. Mula-mula buka pycharm dan masukkan halaman utama pycharm. 2. Kemudian buat skrip python baru, klik kanan - klik baru - klik pythonfile. 3. Masukkan rentetan, kod: s="-". 4. Kemudian anda perlu mengulang simbol dalam rentetan sebanyak 20 kali, kod: s1=s*20 5. Masukkan kod output cetakan, kod: print(s1). 6. Akhir sekali jalankan skrip dan anda akan melihat nilai pulangan kami di bahagian bawah: - diulang 20 kali.

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Mar 12, 2024 pm 09:42 PM

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Apabila pengaturcaraan di Golang, anda sering menghadapi situasi di mana anda perlu menyemak sama ada rentetan bermula dengan aksara tertentu. Untuk memenuhi keperluan ini, kita boleh menggunakan fungsi yang disediakan oleh pakej rentetan di Golang untuk mencapainya. Seterusnya, kami akan memperkenalkan secara terperinci cara menggunakan Golang untuk menyemak sama ada rentetan bermula dengan aksara tertentu, dengan contoh kod tertentu. Di Golang, kita boleh menggunakan HasPrefix daripada pakej rentetan

Cara memintas rentetan dalam bahasa Go Cara memintas rentetan dalam bahasa Go Mar 13, 2024 am 08:33 AM

Bahasa Go ialah bahasa pengaturcaraan yang berkuasa dan fleksibel yang menyediakan fungsi pemprosesan rentetan yang kaya, termasuk pemintasan rentetan. Dalam bahasa Go, kita boleh menggunakan kepingan untuk memintas rentetan. Seterusnya, kami akan memperkenalkan secara terperinci cara memintas rentetan dalam bahasa Go, dengan contoh kod khusus. 1. Gunakan penghirisan untuk memintas rentetan Dalam bahasa Go, anda boleh menggunakan ungkapan menghiris untuk memintas sebahagian daripada rentetan. Sintaks ungkapan slice adalah seperti berikut: slice:=str[start:end]where, s

Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Mar 04, 2024 am 09:36 AM

Kaedah untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar rentetan perenambelasan dalam PHP Dalam pengaturcaraan PHP, kadangkala kita menghadapi situasi di mana kita perlu menukar rentetan heksadesimal kepada aksara Cina biasa. Walau bagaimanapun, dalam proses penukaran ini, kadangkala anda akan menghadapi masalah aksara Cina yang kacau. Artikel ini akan memberi anda kaedah untuk menyelesaikan masalah aksara Cina yang bercelaru apabila menukar perenambelasan kepada rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi hex2bin() untuk penukaran heksadesimal PHP terbina dalam fungsi hex2bin() boleh menukar 1

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Feb 29, 2024 am 08:06 AM

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Dalam pembangunan PHP, pemadanan rentetan ialah tugas biasa, biasanya digunakan untuk mencari kandungan teks tertentu atau untuk mengesahkan format input. Walau bagaimanapun, kadangkala kita perlu mengelak daripada menggunakan ungkapan kemasukan yang tidak jelas untuk memastikan ketepatan padanan. Artikel ini akan memperkenalkan beberapa teknik untuk mengelakkan ungkapan kemasukan yang samar-samar semasa melakukan pemadanan rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi preg_match() untuk padanan tepat Dalam PHP, anda boleh menggunakan preg_mat

Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Mar 24, 2024 am 11:45 AM

Operasi Rentetan PHP: Kaedah Praktikal untuk Mengalih Keluar Ruang Secara Berkesan Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu mengalih keluar ruang daripada rentetan. Mengalih keluar ruang boleh menjadikan rentetan lebih bersih dan memudahkan pemprosesan dan paparan data seterusnya. Artikel ini akan memperkenalkan beberapa kaedah yang berkesan dan praktikal untuk mengalih keluar ruang, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan fungsi PHP terbina dalam trim() fungsi terbina dalam PHP boleh mengalih keluar ruang pada kedua-dua hujung rentetan (termasuk ruang, tab, baris baharu, dsb.), yang sangat mudah dan mudah. untuk menggunakan.

See all articles