给定一个字符串,字符串是有序的整数集合,逗号相连,移除相同的数字,使每个数字只出现一次,输出最终的数字个数。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] seq = br.readLine().trim().split(","); int count = 1; for(int i = 1; i < seq.length; i++) if(!seq[i].equals(seq[i - 1])) count ++; System.out.println(count); } }用集合进行去重,python一行也可以解决
print(len(set(input().split(','))))
#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct node { char crr[32]; struct node* next; }link; link* head()//创建头节点 { link*p=(link*)malloc(sizeof(link)); strcpy(p->crr,"-1"); p->next=NULL; return p; } int add(link*p,char* arr)//入表 { link*ptem=p; while(ptem->next!=NULL)//将指针移动到要最后节点 { ptem=ptem->next; } if(strcmp(ptem->crr,arr)==0)//将最后节点数据和传入数据对比,如果相同则不入 { return 0; } link*pnew=(link*)malloc(sizeof(link));//节点放在链表最后 strcpy(pnew->crr,arr); ptem->next=pnew; pnew->next=NULL; return 0; } int main() { char str[128]={0},arr[32]={0}; link*p=head(); link*ptemp=p; scanf("%s",str); int i,j,k=0; for(i=0;str[i]!='\0';i++) { j=0; while(str[i]!=','&&str[i]!='\0')//将一段数字暂时存放在arr { arr[j]=str[i]; j++; i++; } add(p,arr); } while(ptemp->next!=NULL)//遍历打印测试(可以遍历输出最后结果,相当于是对这个题的拓展了) { k++; ptemp=ptemp->next; //printf("%s\n",ptemp->crr); } printf("%d\n",k); return 0; }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String[] str=br.readLine().split(","); Set<String> set=new HashSet<>(); for(int i=0;i<str.length;i++){ set.add(str[i]); } System.out.println(set.size()); } }
nums = input().split(',') nums = set(nums) print(len(nums))
s=input().strip().split(',') us=[] for i in range(len(s)): if s[i] not in us and s[i]!=',': us.append(s[i]) print(len(us))
import java.util.Scanner; public class Main{ public static void main(String arg[]){ Scanner sc = new Scanner(System.in); String str = sc.next(); int count = 0; String[] split = str.split(","); for (int i = 0; i < split.length-1; i++) { if (split[i].equals(split[i+1])){ count++; } } System.out.println(split.length-count); } }