Jadual Kandungan
Nilai ASCII
Pernyataan Masalah
Penjelasan masalah
Penyelesaian 1 Gunakan vektor frekuensi
Algoritma
Contoh
Output
Kerumitan kod di atas
Penyelesaian 2 Penyelesaian menggunakan fungsi pengisihan terbina dalam
Kesimpulan
Rumah pembangunan bahagian belakang C++ Isih rentetan mengikut nilai ASCII aksara

Isih rentetan mengikut nilai ASCII aksara

Sep 07, 2023 pm 08:29 PM
watak ascii menyusun

Isih rentetan mengikut nilai ASCII aksara

Nilai ASCII

ASCII (American Standard Code for Information Interchange) ialah format pengekodan aksara yang paling biasa untuk data teks pada komputer dan Internet. Dalam data berkod ASCII standard, 256 huruf, nombor atau aksara tambahan khas dan kod kawalan mempunyai nilai unik.

Pernyataan Masalah

Sekarang, dalam masalah ini, kita perlu mencari rentetan yang diisih dalam tertib menaik berdasarkan nilai ASCII aksara, di mana rentetan itu akan menjadi input yang diberikan kepada kita oleh pengguna. Mari lihat bagaimana kita harus menyelesaikan masalah ini.

Mari kita cuba memahami masalah ini dengan bantuan beberapa contoh.

Input - s = "$%7wjk()"

Output - “$%()7jkw”

Penjelasan - Nilai ASCII bagi aksara rentetan yang diberikan adalah seperti berikut -

$ -> 36
% -> 37
( -> 40
) -> 41
7 -> 55
j -> 106
k -> 107
w -> 119
Salin selepas log masuk

Oleh itu, dalam meningkatkan susunan nilai kod ASCII, rentetan akan menjadi "$%()7jkw"

Masuk - s = "#m 0f )nk"

Output - “#)0fkmn”

Penjelasan - Nilai ASCII bagi aksara rentetan yang diberikan adalah seperti berikut -

(space) -> 32
# -> 35
) -> 41
0 -> 48
f -> 102
k -> 107
m -> 109
n -> 110
Salin selepas log masuk

Oleh itu, dalam meningkatkan susunan nilai kod ASCII, rentetan akan menjadi "#)0fkmn"

Penjelasan masalah

Jom cuba fahami masalah dan cari jalan penyelesaian. Kita tahu bahawa terdapat 256 aksara dalam jadual ASCII, setiap satunya mempunyai nilai atau kedudukan yang unik. Jadi matlamat asas kami adalah untuk mengisih watak-watak yang sesuai. Kita boleh menggunakan fungsi pengisihan terbina dalam dengan menggunakan fungsi luaran yang boleh digunakan untuk mencapai matlamat kita. Pendekatan lain ialah mencipta vektor frekuensi dan menyimpan kekerapan setiap aksara dalam tatasusunan itu. Menggunakan vektor frekuensi ini dan nilai ASCII, kita boleh mendapatkan rentetan baharu.

Penyelesaian 1 Gunakan vektor frekuensi

Algoritma

  • Buat vektor frekuensi bersaiz 256 kerana jumlah bilangan aksara dalam jadual ASCII ialah 256 dan mulakan keseluruhan vektor dengan sifar

  • Jalankan gelung untuk menyimpan kekerapan setiap aksara rentetan yang diberikan

  • Sekarang tentukan rentetan keluaran yang pada mulanya kosong

  • Jalankan gelung lain untuk lelaran pada vektor frekuensi, supaya kita boleh mendapatkan rentetan output dengan menaip kedudukan ke-i Frequency_vector[i]

  • Kembalikan rentetan keluaran sebagai hasil akhir

Contoh

Berikut ialah pelaksanaan program C++ bagi kaedah di atas:

#include <bits/stdc++.h>
using namespace std;
// Function to Sort the string as per ASCII values of the characters
string Helper(string s){
    // Define the size of the given string
	int size = s.length();
	// Define a frequency vector of size 256, which is the same as the size of the characters as per the ASCII table, and initiate the value of the vector as 0
	vector<int> v(256, 0);
	// Run a loop to count the frequency of each character of the string
	for (int i = 0; i < size; i++) {
		v[s[i]]++;
	}	
	// Declare a string, initially empty, to find the final output
	string ans = "";
	// Run another loop to get the final output in accordance with the ASCII table
	for (int i = 0; i < 256; i++) {
		for (int j = 0; j < v[i]; j++)
		// Typecast the integer value to the character value to include it in the loop
			ans = ans + (char)i;
	}
	// Return the final output
	return ans;
}
int main(){
    // Give input as a string by the user
	string s = "$%7wjk()";
	// Call Helper function to perform the remaining tasks
	cout<< "The sorted string as per ASCII values of the characters is: " << Helper(s);
	return 0;
}
Salin selepas log masuk

Output

The sorted string as per ASCII values of the characters is: $%()7jkw
Salin selepas log masuk
Salin selepas log masuk

Kerumitan kod di atas

  • Kerumitan masa - O(n); dengan n ialah saiz rentetan. Di sini, kerumitan masa sebenar ialah O(n * 256), tetapi kita boleh menganggapnya sebagai O(n) kerana 256 boleh dianggap sebagai pemalar seperti k, manakala O(k * n) hanya dianggap sebagai O(n ) .

  • Kerumitan ruang - O(256); kerana satu-satunya ruang tambahan yang diambil di sini ialah ruang untuk tatasusunan frekuensi, yang mempunyai saiz 256.

Penyelesaian 2 Penyelesaian menggunakan fungsi pengisihan terbina dalam

Algoritma

  • Tentukan fungsi perbandingan luaran, digunakan dalam fungsi pengisihan untuk mengisih aksara mengikut nilai ASCIInya, iaitu mengembalikan aksara yang nilai penukaran jenis intnya lebih kecil daripada aksara lain.

  • Sekarang gunakan fungsi isihan terbina dalam dalam fungsi pembantu dan gunakan parameter tambahan (fungsi perbandingan) untuk mendapatkan pesanan dengan betul.

  • Panggil fungsi pembantu dan dapatkan output rentetan akhir.

Contoh

#include "bits/stdc++.h"
using namespace std;
// Comparison Function to sort the string as per ASCII values of the characters
bool comparison(char ch1, char ch2){ 
    return int(ch1) <= int(ch2);
}
// Function to sort the string as per ASCII values of the characters
string Helper(string s){
	// Sort the string s with the help of the inbuilt function sort()
	sort(s.begin(), s.end(), comparison);
	// Return the final output string s
	return s;
}
int main(){
    // Give input as a string by the user
	string s = "$%7wjk()";
	// Call Helper function to perform the remaining tasks
	cout<< "The sorted string as per ASCII values of the characters is: " << Helper(s);
	return 0;
}
Salin selepas log masuk

Output

The sorted string as per ASCII values of the characters is: $%()7jkw
Salin selepas log masuk
Salin selepas log masuk

Kerumitan kod di atas

  • Kerumitan masa: O(log(n)); seperti yang kita sedia maklum, fungsi pengisihan terbina dalam mengambil masa O(n * log(n)) untuk melaksanakan kod. Dalam kaedah ini kami menggunakan fungsi pengisihan terbina dalam dengan menggunakan fungsi perbandingan tambahan yang akan mengisih aksara berdasarkan fungsi tersebut.

  • Kerumitan ruang: O(1); Dalam kod di atas, kami tidak menyimpan sebarang pembolehubah dalam beberapa struktur data.

Kesimpulan

Dalam artikel ini, kami menemui rentetan yang diisih berdasarkan nilai ASCII bagi aksara dalam tertib menaik. Kita boleh menyelesaikan masalah ini dengan dua cara. Mula-mula, kita boleh membuat vektor frekuensi bersaiz 256 (bilangan aksara yang sama dalam jadual ASCII) dan menyimpan semua frekuensi bagi setiap aksara, dan kemudian lelaran dari belakang untuk mendapatkan rentetan yang dikehendaki. Cara lain ialah menggunakan fungsi isihan terbina dalam, dengan bantuan parameter tambahan yang diluluskan dalam fungsi isihan.

Atas ialah kandungan terperinci Isih rentetan mengikut nilai ASCII aksara. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial Java
1655
14
Tutorial PHP
1252
29
Tutorial C#
1226
24
Bagaimana untuk mengisih foto mengikut tarikh yang diambil dalam Windows 11/10 Bagaimana untuk mengisih foto mengikut tarikh yang diambil dalam Windows 11/10 Feb 19, 2024 pm 08:45 PM

Artikel ini akan memperkenalkan cara mengisih gambar mengikut tarikh penangkapan dalam Windows 11/10, dan juga membincangkan perkara yang perlu dilakukan jika Windows tidak menyusun gambar mengikut tarikh. Dalam sistem Windows, menyusun foto dengan betul adalah penting untuk memudahkan anda mencari fail imej. Pengguna boleh mengurus folder yang mengandungi foto berdasarkan kaedah pengisihan yang berbeza seperti tarikh, saiz dan nama. Selain itu, anda boleh menetapkan tertib menaik atau menurun mengikut keperluan untuk menyusun fail dengan lebih fleksibel. Cara Isih Foto mengikut Tarikh Diambil dalam Windows 11/10 Untuk mengisih foto mengikut tarikh yang diambil dalam Windows, ikut langkah berikut: Buka Gambar, Desktop atau mana-mana folder tempat anda meletakkan foto Dalam menu Reben, klik

Cara mengisih e-mel mengikut penghantar, subjek, tarikh, kategori, saiz dalam Outlook Cara mengisih e-mel mengikut penghantar, subjek, tarikh, kategori, saiz dalam Outlook Feb 19, 2024 am 10:48 AM

Outlook menawarkan banyak tetapan dan ciri untuk membantu anda mengurus kerja anda dengan lebih cekap. Salah satunya ialah pilihan pengisihan yang membolehkan anda mengkategorikan e-mel anda mengikut keperluan anda. Dalam tutorial ini, kami akan mempelajari cara menggunakan ciri pengisihan Outlook untuk menyusun e-mel berdasarkan kriteria seperti pengirim, subjek, tarikh, kategori atau saiz. Ini akan memudahkan anda memproses dan mencari maklumat penting, menjadikan anda lebih produktif. Microsoft Outlook ialah aplikasi berkuasa yang memudahkan untuk mengurus jadual e-mel dan kalendar anda secara berpusat. Anda boleh menghantar, menerima dan mengatur e-mel dengan mudah, manakala fungsi kalendar terbina dalam memudahkan untuk menjejaki acara dan janji temu anda yang akan datang. Bagaimana untuk berada di Outloo

Pembangunan PHP: Bagaimana untuk melaksanakan pengisihan data jadual dan fungsi halaman Pembangunan PHP: Bagaimana untuk melaksanakan pengisihan data jadual dan fungsi halaman Sep 20, 2023 am 11:28 AM

Pembangunan PHP: Bagaimana untuk melaksanakan fungsi pengisihan data jadual dan halaman Dalam pembangunan web, memproses sejumlah besar data adalah tugas biasa. Untuk jadual yang perlu memaparkan sejumlah besar data, biasanya perlu melaksanakan fungsi pengisihan dan halaman untuk memberikan pengalaman pengguna yang baik dan mengoptimumkan prestasi sistem. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi pengisihan dan halaman data jadual, dan memberikan contoh kod khusus. Fungsi pengisihan melaksanakan fungsi pengisihan dalam jadual, membolehkan pengguna mengisih dalam tertib menaik atau menurun mengikut medan yang berbeza. Berikut ialah borang pelaksanaan

Program C++: susun semula kedudukan perkataan dalam susunan abjad Program C++: susun semula kedudukan perkataan dalam susunan abjad Sep 01, 2023 pm 11:37 PM

Dalam masalah ini, rentetan diberikan sebagai input dan kita perlu mengisih perkataan yang terdapat dalam rentetan dalam susunan leksikografi. Untuk melakukan ini, kami menetapkan indeks bermula dari 1 kepada setiap perkataan dalam rentetan (dipisahkan oleh ruang) dan mendapatkan output dalam bentuk indeks yang diisih. String={"Hello","World"}"Hello"=1 "World"=2 Memandangkan perkataan dalam rentetan input adalah dalam susunan leksikografi, output akan mencetak "12". Mari lihat beberapa senario input/hasil - dengan mengandaikan semua perkataan dalam rentetan input adalah sama, mari lihat keputusan - Input:{"hello","hello","hello"}Result:3 Keputusan diperoleh

Cara yang betul untuk memaparkan aksara Cina dalam matplotlib Cara yang betul untuk memaparkan aksara Cina dalam matplotlib Jan 13, 2024 am 11:03 AM

Memaparkan aksara Cina dengan betul dalam matplotlib adalah masalah yang sering dihadapi oleh ramai pengguna Cina. Secara lalai, matplotlib menggunakan fon Inggeris dan tidak boleh memaparkan aksara Cina dengan betul. Untuk menyelesaikan masalah ini, kita perlu menetapkan fon Cina yang betul dan menggunakannya pada matplotlib. Di bawah ialah beberapa contoh kod khusus untuk membantu anda memaparkan aksara Cina dengan betul dalam matplotlib. Pertama, kita perlu mengimport perpustakaan yang diperlukan: importmatplot

Bagaimanakah kaedah Arrays.sort() dalam Java menyusun tatasusunan mengikut pembanding tersuai? Bagaimanakah kaedah Arrays.sort() dalam Java menyusun tatasusunan mengikut pembanding tersuai? Nov 18, 2023 am 11:36 AM

Bagaimanakah kaedah Arrays.sort() dalam Java menyusun tatasusunan mengikut pembanding tersuai? Di Java, kaedah Arrays.sort() ialah kaedah yang sangat berguna untuk menyusun tatasusunan. Secara lalai, kaedah ini disusun mengikut tertib menaik. Tetapi kadangkala, kita perlu mengisih tatasusunan mengikut peraturan yang ditentukan sendiri. Pada masa ini, anda perlu menggunakan pembanding tersuai (Comparator). Pembanding tersuai ialah kelas yang melaksanakan antara muka Pembanding.

Bagaimana untuk mengisih markah WPS Bagaimana untuk mengisih markah WPS Mar 20, 2024 am 11:28 AM

Dalam kerja kami, kami sering menggunakan perisian wps Terdapat banyak cara untuk memproses data dalam perisian wps, dan fungsinya juga sangat berkuasa Kami sering menggunakan fungsi untuk mencari purata, ringkasan, dan sebagainya kaedah yang boleh digunakan untuk data statistik telah disediakan untuk semua orang dalam perpustakaan perisian WPS Di bawah kami akan memperkenalkan langkah-langkah bagaimana untuk mengisih markah dalam WPS Selepas membaca ini, anda boleh belajar daripada pengalaman. 1. Mula-mula buka jadual yang perlu diberi ranking. Seperti yang ditunjukkan di bawah. 2. Kemudian masukkan formula =pangkat(B2, B2: B5, 0), dan pastikan anda memasukkan 0. Seperti yang ditunjukkan di bawah. 3. Selepas memasukkan formula, tekan kekunci F4 pada papan kekunci komputer Langkah ini adalah untuk menukar rujukan relatif kepada rujukan mutlak.

Ketahui dengan cepat tentang penukaran nilai ASCII dalam PHP Ketahui dengan cepat tentang penukaran nilai ASCII dalam PHP Mar 28, 2024 pm 06:42 PM

Penukaran nilai ASCII dalam PHP adalah masalah yang sering dihadapi dalam pengaturcaraan. ASCII (American Standard Code for Information Interchange) ialah sistem pengekodan standard untuk menukar aksara kepada nombor. Dalam PHP, kita selalunya perlu menukar antara aksara dan nombor melalui kod ASCII. Artikel ini akan memperkenalkan cara menukar nilai ASCII dalam PHP dan memberikan contoh kod tertentu. 1. Tukar aksara

See all articles