Борисовна
?>

Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в языке такими словами являются «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*
Комментарий*

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

AleksandraRuslan504
Avdimov5
ИП-Сысоев1628
nopel91668
molchanovaelena284
Varezka86179
Смирнов_Андрей691
catmos
iamhrusha
Чубкова1290
tolyan791
kseybar
gladkihvv
Анастасия Елена
gav973