Typ string nie jest specjalnie wolniejszy od tablicy char. To tylko niektóre operacje na stringach są wolne. Jakie operacje? Pomyśl sama. Jeżeli chcesz rozciągnąć albo skurczyć stringi to co się dzieje? Pewnie [jeżeli używasz] kopjujesz/[kupujesz ;-)] je nowe.
Konkludując, tak, można na stringach, ale bez delete, insert, [może size] itd. i ewentualnie bez uzyskania 0.00, ale też bez tle.
Może i można, ale podpowiedź takiej kombinacji nie dotyczy pytania Juli.
Panuje takie nieuzasadnione stereotypowe myślenie - stringi [C++] są za wolne w zastosowaniach. Ale jeżeli tak to porównujemy je do czegoś, co jest [dużo] szybsze. Ale w takim razie użyjmy w tym czymś szybszym, w tablicach char [stringi C] takich samych opetracji, jakich używamy w stringach C++, np append, delete, insert i po przetestowaniu dopiero wtedy możemy wyciągać wnioski co jest szybsze a co wolniejsze.
Okazuje się, dzięki komentarzowi @tarpauwatratar, że jest rope, ale w tym zadaniu, ja używam stringów tylko do wczytywania kolejnych wyrazów i natychmiastowego ich obrabiania i wypisywania, więc te wszystkie dodatkowe operacje i rope są dla mnie nieprzydatne. Jeżeli jednak ktoś lubi kombinować …
Błąd, chociaż sam też tak często mam. Jednak po AC może warto “powalczyć” o strawność kodu. Może lepiej nawet nie poprawiać go, a napisać zupełnie na nowo, na świeżo, póki pamiętasz o co chodzi w tym zadaniu i pamiętasz jak je zrobić.
BTW
Używając klasy string w C++, udało mi się uzyskać 0.00 [bez rope]. Użyłem string’a tylko do wczytywania kolejnych wyrazów, a potem używałem już jak zwykłej tablicy char [+wskaźniki]. Dodatkowo:
ios::sync_with_stdio(0);
string wyraz;
wyraz.reserve(1000+2);
a wypisywanie printf i putchar.
Moje testy:
in 1:
4
Litwo Ojczyzno moja ty jestes jak zdrowie
Ile cie trzeba cenic ten tylko sie dowie
Kto cie stracil Dzis pieknosc twa w calej ozdobie
Widze i opisuje bo tesknie po tobie
Panno swieta co Jasnej bronisz Czestochowy
I w Ostrej swiecisz Bramie Ty co grod zamkowy
Nowogrodzki ochraniasz z jego wiernym ludem
Jak mnie dziecko do zdrowia powrocilas cudem
Gdy od placzacej matki pod Twoje opieke
Ofiarowany martwa podnioslem powieke
I zaraz moglem pieszo do Twych swiatyn progu
Isc za wrocone zycie podziekowac Bogu
Tak nas powrocisz cudem na Ojczyzny lono
Tymczasem przenos moje dusze uteskniona
Do tych pagorkow lesnych do tych lak zielonych
Szeroko nad blekitnym Niemnem rozciagnionych
Do tych pol malowanych zbozem rozmaitem
Wyzlacanych pszenica posrebrzanych zytem
Gdzie bursztynowy swierzop gryka jak snieg biala
Gdzie panienskim rumiencem dziecielina pala
A wszystko przepasane jakby wstega miedza
Zielona na niej z rzadka ciche grusze siedza
out 1:
Lit-
wo
Ojc-
zyz-
no
moja
ty
jes-
tes
jak
zdr-
owie
Ile
cie
trz-
eba
cen-
ic
ten
tyl-
ko
sie
dow-
ie
Kto
cie
str-
acil
Dzis
pie-
kno-
sc
twa
w
cal-
ej
ozd-
obie
Wid-
ze
i
opi-
suje
bo
tes-
knie
po
tob-
ie
Pan-
no
swi-
eta
co
Jas-
nej
bro-
nisz
Cze-
sto-
cho-
wy
I w
Ost-
rej
swi-
eci-
sz
Bra-
mie
Ty
co
grod
zam-
kowy
Now-
ogr-
odz-
ki
och-
ran-
iasz
z
jego
wie-
rnym
lud-
em
Jak
mnie
dzi-
ecko
do
zdr-
owia
pow-
roc-
ilas
cud-
em
Gdy
od
pla-
cza-
cej
mat-
ki
pod
Two-
je
opi-
eke
Ofi-
aro-
wany
mar-
twa
pod-
nio-
slem
pow-
ieke
I
zar-
az
mog-
lem
pie-
szo
do
Twy-
ch
swi-
atyn
pro-
gu
Isc
za
wro-
cone
zyc-
ie
pod-
zie-
kow-
ac
Bogu
Tak
nas
pow-
roc-
isz
cud-
em
na
Ojc-
zyz-
ny
lono
Tym-
cza-
sem
prz-
enos
moje
dus-
ze
ute-
skn-
iona
Do
tych
pag-
ork-
ow
les-
nych
do
tych
lak
zie-
lon-
ych
Sze-
roko
nad
ble-
kit-
nym
Nie-
mnem
roz-
cia-
gni-
ony-
ch
Do
tych
pol
mal-
owa-
nych
zbo-
zem
roz-
mai-
tem
Wyz-
lac-
any-
ch
psz-
eni-
ca
pos-
reb-
rza-
nych
zyt-
em
Gdz-
ie
bur-
szt-
yno-
wy
swi-
erz-
op
gry-
ka
jak
sni-
eg
bia-
la
Gdz-
ie
pan-
ien-
skim
rum-
ien-
cem
dzi-
eci-
eli-
na
pala
A
wsz-
yst-
ko
prz-
epa-
sane
jak-
by
wst-
ega
mie-
dza
Zie-
lona
na
niej
z
rza-
dka
cic-
he
gru-
sze
sie-
dza
in 2:
5
Litwo Ojczyzno moja ty jestes jak zdrowie
Ile cie trzeba cenic ten tylko sie dowie
Kto cie stracil Dzis pieknosc twa w calej ozdobie
Widze i opisuje bo tesknie po tobie
Panno swieta co Jasnej bronisz Czestochowy
I w Ostrej swiecisz Bramie Ty co grod zamkowy
Nowogrodzki ochraniasz z jego wiernym ludem
Jak mnie dziecko do zdrowia powrocilas cudem
Gdy od placzacej matki pod Twoje opieke
Ofiarowany martwa podnioslem powieke
I zaraz moglem pieszo do Twych swiatyn progu
Isc za wrocone zycie podziekowac Bogu
Tak nas powrocisz cudem na Ojczyzny lono
Tymczasem przenos moje dusze uteskniona
Do tych pagorkow lesnych do tych lak zielonych
Szeroko nad blekitnym Niemnem rozciagnionych
Do tych pol malowanych zbozem rozmaitem
Wyzlacanych pszenica posrebrzanych zytem
Gdzie bursztynowy swierzop gryka jak snieg biala
Gdzie panienskim rumiencem dziecielina pala
A wszystko przepasane jakby wstega miedza
Zielona na niej z rzadka ciche grusze siedza
Out 2:
Litwo
Ojc-
zyzno
moja
ty
jes-
tes
jak
zdr-
owie
Ile
cie
trz-
eba
cenic
ten
tylko
sie
dowie
Kto
cie
str-
acil
Dzis
pie-
knosc
twa
w
calej
ozd-
obie
Widze
i
opi-
suje
bo
tes-
knie
po
tobie
Panno
swi-
eta
co
Jas-
nej
bro-
nisz
Cze-
sto-
chowy
I w
Ost-
rej
swi-
ecisz
Bra-
mie
Ty co
grod
zam-
kowy
Now-
ogr-
odzki
och-
ran-
iasz
z je-
go
wie-
rnym
ludem
Jak
mnie
dzi-
ecko
do
zdr-
owia
pow-
roc-
ilas
cudem
Gdy
od
pla-
cza-
cej
matki
pod
Twoje
opi-
eke
Ofi-
aro-
wany
mar-
twa
pod-
nio-
slem
pow-
ieke
I
zaraz
mog-
lem
pie-
szo
do
Twych
swi-
atyn
progu
Isc
za
wro-
cone
zycie
pod-
zie-
kowac
Bogu
Tak
nas
pow-
roc-
isz
cudem
na
Ojc-
zyzny
lono
Tym-
cza-
sem
prz-
enos
moje
dusze
ute-
skn-
iona
Do
tych
pag-
orkow
les-
nych
do
tych
lak
zie-
lon-
ych
Sze-
roko
nad
ble-
kit-
nym
Nie-
mnem
roz-
cia-
gni-
onych
Do
tych
pol
mal-
owa-
nych
zbo-
zem
roz-
mai-
tem
Wyz-
lac-
anych
psz-
enica
pos-
reb-
rza-
nych
zytem
Gdzie
bur-
szt-
ynowy
swi-
erzop
gryka
jak
snieg
biala
Gdzie
pan-
ien-
skim
rum-
ien-
cem
dzi-
eci-
elina
pala
A
wsz-
ystko
prz-
epa-
sane
jakby
wst-
ega
mie-
dza
Zie-
lona
na
niej
z
rza-
dka
ciche
gru-
sze
sie-
dza
in 3:
11
Litwo Ojczyzno moja ty jestes jak zdrowie
Ile cie trzeba cenic ten tylko sie dowie
Kto cie stracil Dzis pieknosc twa w calej ozdobie
Widze i opisuje bo tesknie po tobie
Panno swieta co Jasnej bronisz Czestochowy
I w Ostrej swiecisz Bramie Ty co grod zamkowy
Nowogrodzki ochraniasz z jego wiernym ludem
Jak mnie dziecko do zdrowia powrocilas cudem
Gdy od placzacej matki pod Twoje opieke
Ofiarowany martwa podnioslem powieke
I zaraz moglem pieszo do Twych swiatyn progu
Isc za wrocone zycie podziekowac Bogu
Tak nas powrocisz cudem na Ojczyzny lono
Tymczasem przenos moje dusze uteskniona
Do tych pagorkow lesnych do tych lak zielonych
Szeroko nad blekitnym Niemnem rozciagnionych
Do tych pol malowanych zbozem rozmaitem
Wyzlacanych pszenica posrebrzanych zytem
Gdzie bursztynowy swierzop gryka jak snieg biala
Gdzie panienskim rumiencem dziecielina pala
A wszystko przepasane jakby wstega miedza
Zielona na niej z rzadka ciche grusze siedza
Out 3:
Litwo Ojc-
zyzno moja
ty jestes
jak zdrowie
Ile cie
trzeba cen-
ic ten tyl-
ko sie dow-
ie Kto cie
stracil Dz-
is pieknosc
twa w calej
ozdobie
Widze i
opisuje bo-
tesknie po-
tobie Panno
swieta co
Jasnej bro-
nisz Cze-
stochowy I
w Ostrej
swiecisz
Bramie Ty
co grod
zamkowy
Nowogrodzki
ochraniasz
z jego wie-
rnym ludem
Jak mnie
dziecko do-
zdrowia
powrocilas
cudem Gdy
od placza-
cej matki
pod Twoje
opieke Ofi-
arowany
martwa pod-
nioslem
powieke I
zaraz mog-
lem pieszo
do Twych
swiatyn
progu Isc
za wrocone
zycie pod-
ziekowac
Bogu Tak
nas powroc-
isz cudem
na Ojczyzny
lono Tym-
czasem prz-
enos moje
dusze ute-
skniona Do-
tych pag-
orkow les-
nych do ty-
ch lak zie-
lonych Sze-
roko nad
blekitnym
Niemnem
rozciagni-
onych Do
tych pol
malowanych
zbozem roz-
maitem Wyz-
lacanych
pszenica
posrebrza-
nych zytem
Gdzie bur-
sztynowy
swierzop
gryka jak
snieg biala
Gdzie pan-
ienskim
rumiencem
dziecielina
pala A wsz-
ystko prz-
epasane
jakby wst-
ega miedza
Zielona na-
niej z rza-
dka ciche
grusze sie-
dza
in 4:
11
LitwoOjczyznomojatyjestesjakzdrowieIlecietrzebacenictentylkosiedowieKtociestracilDzispieknosctwawcalejozdobieWidzeiopisujeboteskniepotobiePannoswietacoJasnejbroniszCzestochowyIwOstrejswieciszBramieTycogrodzamkowyNowogrodzkiochraniaszzjegowiernymludemJakmniedzieckodozdrowiapowrocilascudemGdyodplaczacejmatkipodTwojeopiekeOfiarowanymartwapodnioslempowiekeIzarazmoglempieszodoTwychswiatynproguIsczawroconezyciepodziekowacBoguTaknaspowrociszcudemnaOjczyznylonoTymczasemprzenosmojeduszeutesknionaDotychpagorkowlesnychdotychlakzielonychSzerokonadblekitnymNiemnemrozciagnionychDotychpolmalowanychzbozemrozmaitemWyzlacanychpszenicaposrebrzanychzytemGdziebursztynowyswierzopgrykajaksniegbialaGdziepanienskimrumiencemdziecielinapalaAwszystkoprzepasanejakbywstegamiedzaZielonananiejzrzadkacichegruszesiedza
Out 4:
LitwoOjcz-
yznomojat-
yjestesja-
kzdrowieI-
lecietrze-
bacenicte-
ntylkosie-
dowieKtoc-
iestracil-
Dzispiekn-
osctwawca-
lejozdobi-
eWidzeiop-
isujebote-
skniepoto-
biePannos-
wietacoJa-
snejbroni-
szCzestoc-
howyIwOst-
rejswieci-
szBramieT-
ycogrodza-
mkowyNowo-
grodzkioc-
hraniaszz-
jegowiern-
ymludemJa-
kmniedzie-
ckodozdro-
wiapowroc-
ilascudem-
Gdyodplac-
zacejmatk-
ipodTwoje-
opiekeOfi-
arowanyma-
rtwapodni-
oslempowi-
ekeIzaraz-
moglempie-
szodoTwyc-
hswiatynp-
roguIscza-
wroconezy-
ciepodzie-
kowacBogu-
Taknaspow-
rociszcud-
emnaOjczy-
znylonoTy-
mczasempr-
zenosmoje-
duszeutes-
knionaDot-
ychpagork-
owlesnych-
dotychlak-
zielonych-
Szerokona-
dblekitny-
mNiemnemr-
ozciagnio-
nychDotyc-
hpolmalow-
anychzboz-
emrozmait-
emWyzlaca-
nychpszen-
icaposreb-
rzanychzy-
temGdzieb-
ursztynow-
yswierzop-
grykajaks-
niegbiala-
Gdziepani-
enskimrum-
iencemdzi-
ecielinap-
alaAwszys-
tkoprzepa-
sanejakby-
wstegamie-
dzaZielon-
ananiejzr-
zadkacich-
egruszesi-
edza
poproszę o sprawdzenie/potwierdzenie
$ diff out1 out1_2
40c40,41
< ze i
---
> ze
> i
61,62c62,63
< wy I
< w
---
> wy
> I w
$ diff out2 out2_2
27c27,28
< twa w
---
> twa
> w
$ diff out3 out3_2
15,16c15,16
< opisuje bo
< tesknie po
---
> opisuje bo-
> tesknie po-
32c32
< dziecko do
---
> dziecko do-
60c60
< skniona Do
---
> skniona Do-
93c93
< Zielona na
---
> Zielona na-
$ diff out4 out4_2
Jest taki program diff, dostępny w systemach linux. Można nim porównać dwa pliki tekstowe, Jeżeli są identyczne nic nie zostanie wypisane. Jeżeli są różnice, zotaną wypisane numery linii i te różniące się linie.
Tutaj np:
diff mój_out_4 twój_out_4 ///-> $ diff out4 out4_2
nic nie wypisał, więc wyjscia ą identyczne.
W pozostałych przykładach są subtelne, drobne różnice, np:
w pierwszym przykładzie:
linia u mnie
40: < ze i
u Ciebie
40: > ze
41: > i
u mnie
61: < wy I
62: < w
u Ciebie
62: > wy
63: > I w
I podobnie w pozostałych przypadkach.
np: out 3
moje:
< opisuje bo
< tesknie po
twoje:
> opisuje bo-
> tesknie po-
itd
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 176 | Jun '24 |
FR_08_11 - Gra w bańki | Zbiór zadań | 1 | 146 | Jun '24 |
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 142 | Jul '24 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 122 | Jul '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 123 | Feb 1 |