输入一个长度
,仅由图片中的可见字符构成的字符串
。
在一行上输出一个整数,代表给定字符串中 ASCII 码在
到
范围内的不同字符的个数。
[@A8aA].0
8
line=input() list=[] for i in range(len(line)): if line[i] not in list: list.append(line[i]) print(len(list))
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
string unistr = "";
while(cin>>s){
long int unicharnum = s.length();
for(long int i = 0; i<s.length();i++){
if(s[i] < 0 || s[i] > 127){
continue;
}
if(unistr.find(s[i]) == string::npos){
unistr+=s[i];
}
}
cout<<unistr.length();
}
return 0;
}
又是没有算法思想的算法,思路完全符合人脑信息扫描学.我是脑瘫我是智障
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int cmp(void* e1,void* e2)
{
return *(char*)e1-*(char*)e2;
}
int main()
{
char ch[500]={0};
int i=0;
int j=0;
scanf("%s",ch);
int len=strlen(ch);
//排序
qsort(ch,len,1,cmp);
//去重
for(i=0;i<len-1;i++)
{
if(ch[i]==ch[i+1])
{
for(j=0;j<len-1;j++)
{
ch[j]=ch[j+1];
}
i--;
len--;
}
}
printf("%d",len);
return 0;
} #法一:转换为列表,去重,输出长度 def CountDist(string): lst = list(string) arr = [] for i in lst: if i not in arr: arr.append(i) print(len(arr)) if __name__=='__main__': x = input() CountDist(x)
#法二:利用集合特点去重,输出集合长度 def CountDist(string): lst = list(string) arr = set(lst) print(len(arr)) if __name__=='__main__': x = input() CountDist(x)
d={}
for i in input():
if 0 < ord(i) < 127:
d[i] = 1
print(len(d)) 那字典当桶来用,重复的自动放桶里,统计桶数即可。其实ASCII不判断也能过。import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String str = in.nextLine();
char[] chs = str.toCharArray();
int [] buckets = new int[128];
int result = 0;
for(Character ch:chs){
if (buckets[ch]>0){
continue;
}else {
buckets[ch]++;
result++;
}
}
System.out.println(result);
}
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
String str = scanner.nextLine();
int count = 0;
Set set = new HashSet();
for(int i=0;i<str.length();i++){
if(set.add(str.substring(i,i+1))){
count++;
}
}
System.out.println(count);
}
}
} import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char[] arr = str.toCharArray();
HashSet<Character> set = new HashSet<>();
int sum =0;
for(int i = 0; i<arr.length; i++){
if(!set.contains(arr[i])){
set.add(arr[i]);
sum++;
}
}
System.out.println(sum);
}
} import java.util.HashSet;
import java.util.Set;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char[] chars = sc.next().toCharArray();
Set<Character> set = new HashSet<>();
for (char c : chars) {
set.add(c);
}
System.out.print(set.size());
}
}
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String s = input.next();
Set<Character> set = new HashSet<Character>();
for(int i=0; i<s.length(); i++){
set.add(s.charAt(i));
}
System.out.print(set.size());
}
} 用set,秒解
#include<stdio.h>
int main() {
char a[1000];
while (scanf("%s", a) != EOF) {
int s[128] = {0};
int total = 0;
for (int i = 0; i < 1000; i++) {
if (a[i] == 0)break;
s[a[i]]++;
}
for (int i = 0; i < 128; i++) {
if (s[i] != 0) {
total++;
}
}
printf("%d", total);
}
return 0;
} 另一种: #include<stdio.h>
int main() {
char c;
int s[128] = {0};
int total = 0;
while (scanf("%c", &c) != EOF) {
if (c >= 0 && c <= 127 && c!='\n') {
s[c]++;
}
}
for (int i = 0; i < 128; i++) {
if (s[i] > 0) total++;
}
printf("%d", total);
return 0;
} import java.util.*; public class HJ10 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ String str = sc.next(); Set<Character> set = new HashSet<>(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if(0<c&&c<127){ set.add(c); } } System.out.println(set.size()); } } }