题 1134 : 【 入门 】 字符统计

14
题 1134 题题题题题题 题 【】 Description 题题 题题题题 ( 题‘ .’ 题题题题题 ) 题 题题题题题题题题 题题题题题题题题题 ( 题题题题题题题 题题题题题 ) 题题 题题题题 5题 题题题题题题题题 ,。 Input 题题 题题 '.' 题题题题题题 Output 题题题题题题题题题题题Sample Input aaaabbbccc. Sample Output a:4 b:3 c:3

Upload: tanek-scott

Post on 01-Jan-2016

36 views

Category:

Documents


7 download

DESCRIPTION

题 1134 : 【 入门 】 字符统计 Description 输入一串 小写字母 ( 以‘ .’ 为结束标志 ) ,统计出每个字母在该字符串中出现的次数 ( 若某字母不出现,则不要输出 ) 。 要求:每行输出 5 项,每项以空格隔开。 Input 输入一行以 '.' 结束的字符串 Output 输出相应小写字母的个数。 Sample Input aaaabbbccc. Sample Output a:4 b:3 c:3. 按照形状计数. A[ ]. A[ ]. A[ ]. A[ ]. ch. a[‘a’]. a[‘b’]. …. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 题 1134 : 【 入门 】 字符统计

题 1134 :【入门】字符统计

Description 输入一串小写字母 ( 以‘ .’ 为结束标志 ) ,统计出每个字母在该字符串中出现的次数 ( 若某字母不出现,则不要输出 ) 。

要求:每行输出 5 项,每项以空格隔开。

Input 输入一行以 '.' 结束的字符串

Output 输出相应小写字母的个数。

Sample Input aaaabbbccc.

Sample Output a:4 b:3 c:3

Page 2: 题 1134 : 【 入门 】 字符统计

A[ ] A[ ] A[ ] A[ ]

按照形状计数

ch

Page 3: 题 1134 : 【 入门 】 字符统计

var a:array['a'..'z'] of integer; i,ch:char; t:integer;begin fillchar(a,sizeof(a),0); read(ch); t:=0; while ch<>'.' do begin a[ch]:=a[ch]+1; read(ch); end; for i:='a' to 'z' do if a[i]<>0 then begin write(i,':',a[i],' '); inc(t); if t mod 5=0 then writeln; end;end.

a[‘a’] a[‘b’] … a[‘z’]

0 0 0

aacda.

12 1 13

Page 4: 题 1134 : 【 入门 】 字符统计

st:string;len,j:integer;i:char;a:array['a'..'z'] of integer;begin read(st); len:=length(st)-1; for i:='a' to 'z' do a[i]:=0; for i:= 'a' to 'z' do for j:=1 to len do  if i=st[j] then a[i]:=a[i]+1; for i:='a' to 'z' do  if a[i]<>0 then write(i,':',a[i],' ');end.

罗艺辰

Page 5: 题 1134 : 【 入门 】 字符统计

字符串操作

Page 6: 题 1134 : 【 入门 】 字符统计

字符串的操作(一)字符串的运算和比较

由字符串的常量、变量和运算符组成的表达式称为字符串表达式。字符串表达式。字符串运算符包括:   1 . + :连接运算符  例如: 'Turbo '+'PASCAL' 的结果是 'Turbo PASCAL' 。  若连接的结果字符串长度超过 255 ,则被截成 255 个字符。 

Page 7: 题 1134 : 【 入门 】 字符统计

2、关系运算符

= 、〈〉、〈、〈 = 、〉、〉 = :关系运算符

两个字符串的比较规则为,从左到右按照 ASCⅡ 码值逐个比较,遇到 ASCⅡ 码不等时 , 规定 ASCⅡ 码值大的字符所在的字符串为大。  例如:‘ AB’ 〈‘ AC’ 结果为真;     ‘ 12’ 〈‘ 2’ 结果为真; ‘ 21’>’2’ 结果为真

      'PASCAL '='PASCAL' 结果为假;

Page 8: 题 1134 : 【 入门 】 字符统计

4-27 设有 n 个正整数 n<=20, 将他们连接成一排,组成一个最大的多位整数。

例如: n=3 13 312 343 343 312 12

n =2 ’13’ +‘131’ <‘131’+’13’ 131 13 13 131

排序 for i:=1 to n-1 do

for j:=i+1 to n do

比较 111 2

‘111’ ‘2’

Page 9: 题 1134 : 【 入门 】 字符统计

4-27 设有 n 个正整数 n<=20, 将他们连接成一排,组成一个最大的多位整数。

例如: n=3 13 312 343 343 312 12

343 343

是否能一起读进去,然后分割下来?

Page 10: 题 1134 : 【 入门 】 字符统计

操作 类型 作用 返回值 例子

length(s) 函数 求字符串 s 的长度 整型 s:='123456789';l:=length(s);{l 的值为 9}

copy ( s,w,k) 函数 复制 s 中从 w 开始的 k 位 字符串 s:='123456789';

s1:=copy(s,3,5);{s1 的值是 '34567'}

val(s,k,code) 过程 将字符串 s 转为数值,存在 k 中; code 是错误代码

 

var s:string;k,code:integer;begins:='1234';val(s,k,code);write(k); {k=1234}

str(i,s) 过程 将数值 i 转为字符串 s

 i:=1234;str(i,s);write(s); {s='1234'}

Delete(s,w,k) 过程 在 s 中删除从第 w位开始的 k 个字符  

s := 'Honest Abe Lincoln';Delete(s,8,4);Writeln(s); { 'Honest Lincoln' }

Insert(s1, S, w) 过程 将 s1 插到 s 中第 w位  

S := 'Honest Lincoln';Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }

pos (c, s) 函数 求字符 c 在 s 中的位置 整型 S := ' 123.5';

i :=Pos(' ', S);{i 的值为 1}

+ 运算符 将两个字符串连接起来  

s1:='1234';s2:='5678';s:=s1+s2;{'12345678'}

Page 11: 题 1134 : 【 入门 】 字符统计

以 年 - 月 - 日格式输入,要求分三行输出年、月、日

输入: 1900-4-12

输出: 1900

4

12

输入: 10-12-5

输出: 10

12

5

Page 12: 题 1134 : 【 入门 】 字符统计

对输入的一句子实现查找且置换的功能。分析分析 :: 程序中程序中 ,, 输入要查找的字符串及要置换的字符串输入要查找的字符串及要置换的字符串 ,, 充分用上了字符串处理的标准过程充分用上了字符串处理的标准过程

deletedelete 、、 insertinsert 及标准函数及标准函数 pospos 。。    

程序如下 : program ex8_5;   var s1,s,o:string;    i:integer;   begin    readln(s1);    readln(s);    readln(o);    i:=pos(s,s1);    while i<>0 do begin     delete(s1,i,length(s));     insert(o,s1,i);     i:=pos(s,s1);    end;    writeln(s1);      end.

Page 13: 题 1134 : 【 入门 】 字符统计

题 1188: 【基础】高精度加法

计算 a+b 的值, a,b 皆不超过 240 位。

Input 两个数 每行一个

Output 一个数

Sample Input

111111111111111111111111111111111111

222222222222222222222222222222222222

Sample Output

333333333333333333333333333333333333

Page 14: 题 1134 : 【 入门 】 字符统计

program ex1188;

var st1,st2:string;

a,b:array[1..250] of integer;

len1,len2,len,c,i:integer;

begin

readln(st1); len1:=length(st1);

readln(st2); len2:=length(st2);

for i:=1 to len1 do a[i]:=ord(st1[len1-i+1])-48;

for i:=1 to len2 do b[i]:=ord(st2[len2-i+1])-48;

if len1>len2 then len:=len1 else len:=len2;

c:=0;

for i:=1 to len do

begin

a[i]:=a[i]+b[i]+c;

c:=a[i] div 10;

a[i]:=a[i] mod 10;

end;

if c<>0 then write(c);

for i:=len downto 1 do write(a[i]);

end.