Борисовна
?>

Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в языке такими словами являются «radar» и «racecar». света изучает язык и решила принять участие в дистанционном конкурсе знатоков языка. но, когда она писала ответ на «найдите самое длинное слово, которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу. определите, какую букву нужно удалить в набранном светой слове, чтобы это слово стало палиндромом. программа получает на вход строку из строчных букв, содержащую не менее 2 и не более 100 000 символов. программа должна вывести единственное число – номер буквы в строке, при удалении которой слово становится палиндромом. если при удалении любой буквы слово не станет палиндромом, программа должна вывести число 0. кто может написать на pascal'е программу.?

Информатика

Ответы

annaar497

function ispal(s: string): boolean;

var t: string;

i: integer;

begin

t:='';

for i:=length(s) downto 1 do t:=t+s[i];

if t=s then ispal:=true

else ispal:=false;

end;

var s,t: string;

i,f: integer;

begin

readln(s);

f:=0;

t:='';

for i:=1 to length(s) do

begin

t:=s[i];

delete(s,i,1);

if ispal(s) then

begin

f:=1;

insert(t,s,i);

break;

end;

insert(t,s,i);

end;

if f=1 then write(pos(t,s))

else write(0);

end.

Styazhkin395
Поскольку за последним словом в предложении пробела нет, то количество слов в предложении будет на единицу больше количества пробелов.

var
  i,n:integer;
  s:string;
begin
  Writeln('Введите текст, разделяя слова ровно одним пробелом');
  Readln(s);
  n:=0;
  for i:=1 to Length(s) do
    if s[i]=' ' then Inc(n);
  Writeln('Количество слов в тексте равно ',n+1)
end.

Тестовое решение:
Введите текст, разделяя слова ровно одним пробелом
Это текст, количество слов в котором нам нужно посчитать.
Количество слов в тексте равно 9
oskon008
1)
var 
a: array [1..5] of integer;
i,k:integer;
Begin
Writeln('Перечислите элементы массива: ');For i:=1 to 5 do
read(a[i]);
For i:=1 to 5 do 
If (a[i] > -1) then write(a[i]:2);
End.
2)
var 
a: array [1..5] of integer;
i,k1,k2,max,min:integer;
Begin
min:=MaxInt;
max:=-MaxInt;
Writeln('Перечислите элементы массива: ');
For i:=1 to 5 do 
begin
read(a[i]);
if (a[i] > max) then max:=a[i];
if (a[i] < min) then min:=a[i];
end;
For i:=1 to 5 do 
begin
If (a[i] = max) then inc(k1);
If (a[i] = min) then inc(k2);
end;
If (k1>k2) then writeln('Больше max элементов') 
else writeln('Больше min элементов');
End.
3)
var 
a: array [1..5] of integer;
i,k,x:integer;
Begin
Write ('X = ');
read(x);
Writeln('Перечислите элементы массива: ');
For i:=1 to 5 do begin     read(a[i]);
if (a[i] = x ) then inc(k);
end;  
writeln('kol = ',k) ;
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в языке такими словами являются «radar» и «racecar». света изучает язык и решила принять участие в дистанционном конкурсе знатоков языка. но, когда она писала ответ на «найдите самое длинное слово, которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу. определите, какую букву нужно удалить в набранном светой слове, чтобы это слово стало палиндромом. программа получает на вход строку из строчных букв, содержащую не менее 2 и не более 100 000 символов. программа должна вывести единственное число – номер буквы в строке, при удалении которой слово становится палиндромом. если при удалении любой буквы слово не станет палиндромом, программа должна вывести число 0. кто может написать на pascal'е программу.?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

andy74rus36
chulki-kupit
Irina Bakaev
volodinnikolay19
ladykalmikova81
Aleksandr362
aeykin
xarfagr
ganzashop
Aleksei Aleksandrovna649
Pavlovna897
gigbes
Vova220
mileva84
sve34166163