编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。 数据范围:
区块链毕设网qklbishe.com为您提供问题的解答
}#include <stdio.h> #include <string.h> int main(void) { char a[1000] ; int b[200] = {0} ; int i, j, k ; int n =0; gets(a) ; for(i=0; i<strlen(a); i++) { for(j=0; j<128; j++) { if( a[i] == j) b[j]++ ; } } for(k=0; k<128; k++) { if(b[k] != 0) n++ ; } printf("%dn", n) ; return 0 ; }
dict = []
for i in range(len(num)):
if num[i] not in dict and 0 <= ord(num[i]) <= 127:
dict.append(num[i])
print(len(dict))
}
import java.util.*; public class Main{ public static void main(String []args){ Scanner sc = new Scanner(System.in); String str = sc.nextLine(); boolean ascii[] = new boolean[128]; int count = 0; for(int i =0;i<str.length();i++){ int index = Integer.valueOf(str.charAt(i)); if(!ascii[index]){ ascii[index] = true; count++; } } System.out.println(count); } }
import java.util.*; public class Main { public static void main(String[] args) { boolean[] bitmap = new boolean[128]; Scanner in = new Scanner(System.in); String line = in.nextLine(); int count = 0; for (int i = 0; i < line.length(); i++) { if (!bitmap[line.charAt(i)]) { count++; } bitmap[line.charAt(i)] = true; } System.out.println(count); } }
#include <iostream> #include <string> int main() { using namespace std; int i=0,j=0,num=0; string st; char ss[128] = {0}; getline(cin,st); for(i=0;i<st.size();i++) { ss[st[i]]++; } for(j=0;j<=127;j++) { if(ss[j] != 0) num++; } cout << num << endl; return 0; }
var rl = require('readline').createInterface(process.stdin, process.stdout); var n = 0; var arr = []; var index; var value; var i; rl.on('line', function(line) { n = line.trim(); var obj = {}; var r = 0; for (i = 0; i < n.length; i++) { if (obj[n[i]] === undefined) { obj[n[i]] = 1; r++; } } console.log(r); }); //依然是hash
//参考了kiss90的写法,修改了一下; #include <iostream> #include <set> #include<string> using namespace std; int main() { string str; set<char> s; while(getline(cin,str)) { for(int i=0;i<str.length();i++) s.insert(str[i]);//把每个字符插入到set容器s里 cout<<s.size()<<endl;//计算set容器的元素个数,set的特点是元素必须是唯一的,重复的元素会被忽略 s.clear(); //清空了set,以便再次输入, } return 0; }
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str = sc.nextLine(); int count=0; int []tab=new int[128]; for (int i = 0; i < str.length(); i++) { if(tab[str.charAt(i)]==0) tab[str.charAt(i)]++; } for (int i = 0; i < tab.length; i++) { if(tab[i]!=0) count++; } System.out.println(count); } }
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.next(); scanner.close(); int count = 0; for (int i = 0; i < string.length(); i++) { if (string.charAt(i) <= 127 && string.charAt(i) >= 0 && string.lastIndexOf(string.charAt(i)) == i) { count++; } } System.out.println(count); } }
while(getline(cin, str)) { bool isVisit[128]={false}; auto end = str.end(); int ret = 0; for(auto beg = str.begin(); beg != end; ++beg) { if(!isVisit[*beg]) { isVisit[*beg] = true; ret++; } } cout << ret <<endl; }
str_in = input() str_out = [] for i in str_in: if i not in str_out: str_out.append(i) else: continue print(len(str_out))
a=input() s=set() for i in a: if ord(i)<=127 and ord(i)>=0: s.add(i) print(len(s))
#include<iostream> using namespace std; int main() { string s; cin>>s; bool flag[128]={0}; int count=0; for(int i=0;i<s.length();i++) { if(flag[int(s[i])]==0) count++; flag[int(s[i])]=1; } cout<<count; }
#include<stdio.h> #include<string.h> int main(){ int mark[128]={0}; char str[501]={' '}; //数组容量最好比数据的最大输入长度大 while(~scanf("%s",&str)){ int len=strlen(str),count=0; for(int i=0;i<len;i++){ if(mark[(int)str[i]]==0){ count++; mark[(int)str[i]]++; //修改标志位 } }printf("%dn",count); } }
line=input() list=[] for i in range(len(line)): if line[i] not in list: list.append(line[i]) print(len(list))
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
Set<Character> set = new HashSet();
int num =0;
for(int i = 0;i<str.length();i++){
if(str.charAt(i)<0 && str.charAt(i) >127){
continue;
}
if(!set.contains(str.charAt(i))) {
set.add(str.charAt(i));
num++;
}
}
System.out.print(num);
}
}
def getl(ss): return len(set(ss)) # set()函数可直接去除重复的字符 st = input() print(getl(st))
以上就是关于问题编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围:的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训