Cho 1 xâu S đã được nén gồm ký tự số và chữ cái, Em hãy VCT giải nén xâu S.
Ví dụ: S='3ax2b5c'
Giải thích: Xâu S có ba ký tự 'ax', hai ký tự 'b', năm ký tự 'c'.
Kết quả giải nén: S='axaxaxbbccccc'
Pascal ạ _ Em cảm ơn_ Mảng ạ
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
uses crt;
var s:string;
i,d:integer;
begin
clrscr;
write('Nhap xau S:'); readln(s);
d:=length(s);
for i:=1 to d do
s[i]:=upcase(s[i]);
writeln(s);
readln;
end.
uses crt;
var s,s1,s2:string;
i,d:integer;
begin
clrscr;
readln(s);
s1:='';
s2:='';
d:=length(s);
for i:=1 to d do
begin
if s[i] in ['0'..'9'] then s1:=s1+s[i];
if (s[i] in ['a'..'z']) or (s[i] in ['A'..'Z']) then s2:=s2+s[i];
end;
writeln('Xau chua cac ki tu so la: ',s1);
writeln('Xau chua cac ki tu chu la: ',s2);
readln;
end.
uses crt;
var s:string;
i,d:integer;
begin
clrscr;
write('Nhap xau S:'); readln(s);
d:=length(s);
for i:=1 to d do
s[i]:=upcase(s[i]);
writeln(s);
readln;
end.
#include<bits/stdc++.h>
using namespace std;
int main(){
long long i,dem[1000],d;
string s;
cin >>s;
for(i=0;i<s.size();i++)
dem[s[i]]++;
d=0;
for(i=97;i<=122;i++)
if(dem[i]%2==1)
d++;
if(d>0)
cout<<d-1;
else
cout<<0;
return 0;
}
Đếm số lần xuất hiện của các kí tự 'a'..'z' trong xâu S. Dễ thấy với các kí tự có số lần xuất hiện là chẵn, ta có thể xếp một nửa kí tự đó sang 2 bên thỏa mãn tính chất đối xứng. Đối với kí tự có số lần xuất hiện là lẻ, ta làm tương tự và đưa kí tự còn lại vào trung tâm. Như vậy, để xâu sau khi xóa đối xứng thì chỉ có duy nhất một kí tự có số lần xuất hiện lẻ nên ta sẽ xóa các kí tự lẻ đó, chỉ để lại 1 hoặc 0 cái cuối cùng.
code tham khảo:
int main()
{
string s;
cin >> s;
vector<int> fre(256, 0);
for (char c : s) fre[c]++;
int res = 0;
for (int x : fre) res += (x % 2 == 1);
cout << res - (res > 0);
return 0;
}
Để chuẩn hóa xâu kí tự, ta sẽ loại bỏ các ký tự trống ở đầu và cuối xâu, sau đó loại bỏ các ký tự trống kề liền.
Để tìm số lượng kí tự chữ số trong xâu, ta sẽ duyệt qua từng ký tự của xâu và kiểm tra xem ký tự đó có phải là chữ số không.
Code Python để thực hiện yêu cầu đề bài như sau:
pythondef chuan_hoa_xau(s): # Xóa khoảng trắng ở đầu và cuối xâu s = s.strip() # Loại bỏ khoảng trắng kề nhau i = 0 while i < len(s) - 1: if s[i] == ' ' and s[i+1] == ' ': s = s[:i] + s[i+1:] else: i += 1 return s def dem_chu_so(s): count = 0 for c in s: if c.isdigit(): count += 1 return count # Đọc xâu kí tự từ input s = input() # Chuẩn hóa xâu s_chuan = chuan_hoa_xau(s) # Tìm số lượng kí tự chữ số so_luong_chu_so = dem_chu_so(s_chuan) # In ra kết quả print(s_chuan) print(so_luong_chu_so)Ví dụ:
Input:
csharpThis is an example 1234 string .Output:
csharpThis is an example 1234 string. 4const fi='timmax.inp';
fo='timmax.out';
var f1,f2:text;
st,xauso:ansistring;
d,i,max,x:longint;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,st);
d:=length(st);
xauso:='';
max:=0;
for i:=1 to d do
if st[i] in ['0'..'9'] then xauso:=xauso+st[i]
else begin
val(xauso,x);
if max<=x then max:=x;
xauso:='';
end;
if max=0 then writeln(f2,'-1')
else writeln(f2,max);
close(f1);
close(f2);
end.
Uses crt;
Var St,St1,x:string;
i,j,k,l:longint;
Begin
readln(St);
For i:=1 to length(St) do
If (St[i] in ['a'..'z']) then If not (St[i-1] in ['0'..'9']) then Insert('1',St,i);
For i:=1 to length(St) do
Begin
If St[i] in ['0'..'9'] then
For j:=i+1 to length(St) do
If St[j] in ['a'..'z'] then break;
x:=copy(St,i,j-i);
Val(x,k);
For l:=1 to k do
St1:=St1+St[j];
end;
Write(St1);
readln;
end.