回 帖 发 新 帖 刷新版面

主题:一道难题,快来帮我!!!

输入一个大写字母字符串,找出没有在此串中出现的所有大写字母。[em18]

回复列表 (共3个回复)

沙发

var b:array['A'..'Z']of boolean;
   s:string;i:integer;ch:char;
  begin
    readln(s);
     fillchar(b,sizeof(b),false);
    for i:=1 to length(s) do 
        b[s[i]]:=true;
    for ch:='A' to 'Z' do 
        if b[ch]=false then write(ch);
    end.
多看书
多思考

板凳

var 
  s:set of char;
  c:char;
begin
  s:=['A'..'Z']
  while not eoln do begin
    read(c);s:=s-[c];
  end;
  for c:='A' to 'Z' do if c in s then write(c);
end.

3 楼

用类似计数排序的方法..
最后一次扫描  输出计数为0的字母。。。
O(n) 的时间复杂度

我来回复

您尚未登录,请登录后再回复。点此登录或注册