请为这段代码加注释public int minimizedStringLength(String s) { HashSet<Character> set = new HashSet<>(); for(int i =0 ;i < s.length() ;i++){ set.add(s.charAt(i)); } return set.size(); }
时间: 2024-03-04 15:50:15 浏览: 14
/*
* 该方法的作用是计算输入字符串中不同字符的个数
* 参数说明:输入字符串s
* 返回值:不同字符的个数
*/
public int minimizedStringLength(String s) {
HashSet<Character> set = new HashSet<>(); // 使用HashSet存储不同的字符
for(int i = 0; i < s.length(); i++) { // 遍历字符串s中的每一个字符
set.add(s.charAt(i)); // 将字符加入HashSet中
}
return set.size(); // 返回HashSet中不同字符的个数
}
相关问题
HashSet<Character> set = new HashSet<>();这是什么意思
这是在 Java 编程语言中创建一个字符的 HashSet 集合的语句。
HashSet 是 Java 中的一种无序不重复的集合,用来存储单个元素。它的元素是不能重复的,即集合中的元素是唯一的。
<Character> 表示存储的元素类型为字符,也就是说,集合中的元素是单个字符。
new HashSet<>() 用于创建一个空的 HashSet 集合。
所以,这段语句的意思是:创建一个空的存储字符的 HashSet 集合,并将其命名为 "set"。
C语言怎么改写public static HashSet<Point> set = new HashSet<Point>();
抱歉,C语言中没有public static关键字,也没有HashSet类。但是,我们可以使用结构体和指针来实现类似的功能。以下是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
struct Point {
int x;
int y;
};
struct HashSet {
struct Point* points;
int size;
};
void add(struct HashSet* set, struct Point point) {
for (int i = 0; i < set->size; i++) {
if (set->points[i].x == point.x && set->points[i].y == point.y) {
return;
}
}
set->size++;
set->points = (struct Point*)realloc(set->points, set->size * sizeof(struct Point));
set->points[set->size - 1] = point;
}
int main() {
struct HashSet set = { NULL, 0 };
struct Point p1 = { 1, 2 };
struct Point p2 = { 3, 4 };
add(&set, p1);
add(&set, p2);
printf("Set size: %d\n", set.size);
printf("Set contents: ");
for (int i = 0; i < set.size; i++) {
printf("(%d, %d) ", set.points[i].x, set.points[i].y);
}
printf("\n");
free(set.points);
return 0;
}
```
这个代码使用了一个结构体HashSet来存储点的集合,其中包含一个指向Point结构体数组的指针和一个表示集合大小的整数。add函数用于向集合中添加一个点,如果点已经存在于集合中,则不进行任何操作。在main函数中,我们创建了两个点并将它们添加到集合中,然后输出集合的大小和内容。最后,我们释放了动态分配的内存。