K
Khách

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.

D
datcoder
CTVVIP
23 tháng 5

Bạn tham khảo theo code C++ nhé!

D
datcoder
CTVVIP
23 tháng 5

Bài này khá hay nên mình sẽ giải thích 1 chút về thuật toán mà mình sử dụng.

Thường thì 1 số bạn sẽ nghĩ đến sử dụng vòng lặp, nhưng đối với bài với giá trị của a và b lớn thì dùng vòng lặp ở những Testcase ở 60% sẽ dễ bị quá thời gian không đạt được điểm tối đa. 

Hướng giải quyết code của mình làm như sau:

Dãy TINHOCTREQUANGNINH là 1 dãy có 18 kí tự sẽ tạo 1 dãy vô hạn

=> Mỗi kí tự sẽ được gán 1 chỉ số chia lấy dư cho 18. 

Ví dụ chuỗi s = "TINHOCTREQUANGNINH"

TINHOCTREQUANGNINH
123456789101112131415161718

Ví dụ a = 19 khi thì a%18 = 1. Thì nó sẽ lấy kí tự đầu và b cũng tương tự. Đối với trường hợp a hoặc b %18=0 thì chỉ số đó cũng sẽ bằng 18 vì a%18=0 hoặc b%18=0 chỉ đến vị trí cuối của chuỗi.

Mình chia làm 3 trường hợp như sau:

- TH1: Lấy các kí tự từ 1 chuỗi gốc TINHOCTREQUANGNINH (a%18 < b%18)

-> Đối với trường hợp này thì chỉ cần in ra các kí tự từ a%18 đến b%18. Trong C++ chỉ số bắt đầu là 0 nên mình dùng a%18-1

-TH2: Cần ghép 2 chuỗi lại để lấy kí tự, ví dụ a = 15 và b = 21 => Kết quả là NINHTIN 

Để dễ hình thì ta phải ghép 2 chuỗi s lại như sau: TINHOCTREQUANGNINHTINHOCTREQUANGNINH

Đối với trường hợp 2 này thì a%18 sẽ > b%18. 

Do vậy mình sẽ in các kì tự từ a%18 đến 18 của chuỗi TINHOCTREQUANGNINH. Tiếp tục in tiếp từ vị trí đầu chuỗi đến b%18 của chuỗi. => Sẽ tạo ra được 1 chuỗi theo yêu cầu của Input

- TH3: a = b 

Trường hợp này mình in ra kí tự thứ a hoặc b. Để tiết kiệm thời gian khi sử dụng vòng lặp thì sẽ tương ứng với s[a%18-1] . Vì trong C++ chỉ số chuỗi bắt đầu là 0 nên -1 để đúng với yêu cầu bài toán đặt ra.

30 tháng 3 2023

a = input("Nhập chuỗi A: ")

b = input("Nhập chuỗi B: ")

# Tìm độ dài chuỗi dài nhất 

max_length = max(len(a), len(b))

# Đếm số khoảng trắng trong chuỗi dài nhất

max_spaces = 0

for char in (a + b):

     if char == ' ':

          max_spaces += 1

# Ghép chuỗi ngắn vào chuỗi dài hơn ở vị trí cuối cùng

if len(a) < len(b):

     a += b[-(len(b) - len(a)):]

else:

     b += a[-(len(a) - len(b)):]

# Xuất kết quả ra màn hình

print("Số khoảng trắng trong chuỗi dài nhất là:", max_spaces)

print("Chuỗi sau khi ghép là:", a + b)

uses crt;

var st:string;

n,vt,d,i:integer;

begin

clrscr;

write('Nhap xau:'); readln(st);

d:=length(st);

write('Nhap vi tri can xoa:'); readln(vt);

write('Nhap so ki tu can xoa:'); readln(n);

delete(st,vt,n);

writeln('Xau sau khi xoa la: ',st);

readln;

end.

uses crt;

var st:string;

i,dem:integer;

begin

clrscr;

readln(st);

writeln(length(st));

for i:=5 to 8 do write(st[i]);

writeln;

dem:=0;

for i:=1 to length(st) do 

  if st[i]='b' then dem:=dem+1;

writeln(dem);

readln;

end.

uses crt;

var st:string;

begin

clrscr;

readln(st);

delete(st,3,5);

writeln(st);

readln;

end.

20 tháng 3 2023

xau = input('Nhap chuoi: ')

so_khoang_cach = xau.count(' ')

print('So khoang cach:', so_khoang_cach)

vi_tri = []

for i in range(len(xau)):

     if xau[i] == ' ':

          vi_tri.append(i)

print('Vi tri khoang cach:', vi_tri)

uses crt;

var st:string;

i,d:integer;

begin

clrscr;

readln(st);

d:=length(st);

for i:=1 to d do 

begin  

if st[i]=' ' then writeln

else write(st[i]);

end;

readln;

end.

16 tháng 3 2022

Uầy đỉnh thế

23 tháng 3 2023

Program HOC24;

var i,d: byte;

s: string;

begin

write('Nhap xau: '); readln(s);

d:=0;

for i:=1 to length(s) do

if s[i]='b' then d:=d+1;

writeln('Co ',d,' ki tu b');

write('Xau moi sau khi da xoa la: ');

for i:=1 to length(s) do if s[i]<>'b' then write(s[i]);

readln

end.

uses crt;

var a,b,c:string;

i,d1,d2:integer;

begin

clrscr;

write('Nhap xau a:'); readln(a);

write('Nhap xau b:'); readln(b);

d1:=length(a);

d2:=length(b);

writeln('Tong do dai hai xau la: ',d1+d2);

c:=#32;

for i:=1 to d1 do 

  if (a[i] in ['A'..'Z']) or (a[i] in ['a'..'z']) then c:=c+a[i];

for i:=1 to d2 do 

  if b[i] in ['0'..'9'] then c:=c+b[i];

writeln('Xau c la: ',c);

readln;

end.

uses crt;

var st:string;

begin

clrscr;

write('Nhap xau:'); readln(st);

writeln(length(st));

readln;

end.