精选问答
pascal字符串问题1、输入一行英文句子,句子中只有英文单词和空格;每个单词之间由若干个空格隔开,英文单词由大小写字母组成。统计此句子中的单词个数,假定重复出现的单词只计一次,且认为大小写字母是相同的,如‘The’和‘the’是同一个单词。2、做一个简单的加减法计算器,完成30000以内的加减法,两个数之间用“+”或“-”连接,没有括号,可以连加或连减。3、字符串连续统计要求对一个字符串进行连续统计。比如字符串一1123560708,对其统计结果为1321111,即第一个数值和第二个数值不连续就为1;第

2019-04-16

pascal字符串问题
1、输入一行英文句子,句子中只有英文单词和空格;每个单词之间由若干个空格隔开,英文单词由大小写字母组成。统计此句子中的单词个数,假定重复出现的单词只计一次,且认为大小写字母是相同的,如‘The’和‘the’是同一个单词。
2、做一个简单的加减法计算器,完成30000以内的加减法,两个数之间用“+”或“-”连接,没有括号,可以连加或连减。
3、字符串连续统计
要求对一个字符串进行连续统计。比如字符串一1123560708,对其统计结果为1321111,即第一个数值和第二个数值不连续就为1;第二个数值到第四个数值是三连,即为3;第五个数值到第六个数值为二连,即为2;后面四个数值都没有连续即都为1。321这一类属不连。
4、最短字符串
截取任意两个字符间最短的字符串,例如:有字符串“12346168”,截取1和3之间的字符,返回 2 ,截取6和2间的字符,返回 34
,字符相邻时返回“No char”, 截取的两个字符无顺序,如截取2和6与截取6和2是相同的作用。
5、
对输入的一行英文句子实现查找和置换功能。
数据第一行为原句,
第二行为要查找的内容,
第三行为替换后的目标内容。
6、有一种字符串压缩方式简单易行。那就是,如果有连续很多个相同的字符,就把他们写作:字符+出现次数的形式。
例如:aaagbbbbaac压缩成a3gb4a2c
现在你也来试试。
注意:字符单个出现的不作改变,只有连续出现多次才有改变。
7、 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
  识别码的计算方法如下:
  首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod
11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158
mod
11的结果4作为识别码。
你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码
8、在电影里我们常常可以看到这样的镜头,通过在犯罪分子身上安装的信号发射装置,警方可以持续不断的知道犯罪分子的位置。现在请你根据下面这个地图来追踪罪犯(地图中字母固定、字母位置固定、地图四周是墙):

A B C D
E F G H
I J K L
M N O
P
图中每个字符代表一个位置,现在你不断地接收到一些位置信号,那么请你编写程序计算从信号开始到信号结束目标至少移动了多少距离,在本地图中,只能上下左右四个方向移动,相邻两个单元格的移动距离为1。例如接受信号如:BJOI,那么移动顺序为B-J-O-I,最少移动距离7。
优质解答
第六道
var s:ansistring;
i,j,k,l,n,t:longint;
begin
readln(s);
l:=length(s);
for i:=2 to l do
begin
if (s[i]=s[i-1]) then s[i]:=2;
if (s[i]=s[i-2]) then begin
delete(s,i,1);
anc(s[i-1]);
end;
end;
writeln(s);
end.
第七道
var s:string;
i,j,n,m,k,l,t:longint;
v:char;
begin
readln(s);
delete(s,2,1);
delete(s,5,1);
delete(s,10,1);
for i:=1 to 9 do begin
t:=(ord(s[i])-48)*i+t;
end;
case t mod 11 of
10:v:='X';
else begin
v:=chr((t mod 11)+48);
end;
end;
if s[10]=v then writeln('Right')
else writeln(s[1],'-',s[2],s[3],s[4],'-',s[5],s[6],s[7],s[8],s[9],'-',v);
end.
第六道
var s:ansistring;
i,j,k,l,n,t:longint;
begin
readln(s);
l:=length(s);
for i:=2 to l do
begin
if (s[i]=s[i-1]) then s[i]:=2;
if (s[i]=s[i-2]) then begin
delete(s,i,1);
anc(s[i-1]);
end;
end;
writeln(s);
end.
第七道
var s:string;
i,j,n,m,k,l,t:longint;
v:char;
begin
readln(s);
delete(s,2,1);
delete(s,5,1);
delete(s,10,1);
for i:=1 to 9 do begin
t:=(ord(s[i])-48)*i+t;
end;
case t mod 11 of
10:v:='X';
else begin
v:=chr((t mod 11)+48);
end;
end;
if s[10]=v then writeln('Right')
else writeln(s[1],'-',s[2],s[3],s[4],'-',s[5],s[6],s[7],s[8],s[9],'-',v);
end.
相关问答