编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。 数据范围:

区块链毕设网qklbishe.com为您提供问题的解答

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围: 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次    例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。          数据范围:
 
}#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 ; }

35:09
import java.util.HashSet;
import java.util.Scanner;
public class Statistics {
public static void main(String argsp[]) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
scanner.close();
HashSet<String> setchars = new HashSet<String>();
for(int i = 0; i < str.length(); i++){
if (str.charAt(i) >= 0 && str.charAt(i) <= 127) {
setchars.add(String.valueOf(str.charAt(i)));
}
}
System.out.println(setchars.size());
}
}

44:56

Python:
num = input()
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))

37:11
import java.util.Scanner;
import java.util.HashSet;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        char ch[] = str.toCharArray();
        HashSet<Character> set = new HashSet<Character>();
        for (int i = 0; i < ch.length; i++) {
            set.add(ch[i]);
        }
        System.out.println(set.size());
    }
}

45:47

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);     } }

59:13

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);     } }

38:45
#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; }

56:33
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

33:47
//参考了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;  }

56:48
#include <iostream>
#include <string>
using namespace std;
int main()
    { 
    int m,i,n=0;
    int a[128]={0};
    string str;
    getline(cin,str);
    m=str.size();
    for(i=0;i<m;i++)
        {
          if(a[str[i]]==0)
              {
              n++;
              a[str[i]]++;
          }
    }
   cout<<n<<endl;
    return 0;
}

54:15
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); 	} } 

38:50
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);     } } 

43:41

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;     }  

57:52

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))

10:08

a=input() s=set() for i in a:  if ord(i)<=127 and ord(i)>=0:         s.add(i) print(len(s))

33:26

#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; }

21:09

利用标志位计数
#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);     } }

07:29

line=input() list=[] for i in range(len(line)):     if line[i] not in list:         list.append(line[i]) print(len(list))

10:27

import java.util.HashSet;
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);
    }
}

24:05

def getl(ss):     return len(set(ss))  # set()函数可直接去除重复的字符  st = input() print(getl(st)) 

18:53

以上就是关于问题编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围:的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。 数据范围: