Submission
Status:
[PPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: wasupum
Problemset: เรียงสตริง
Language: c
Time: 0.002 second
Submitted On: 2025-10-03 01:06:21
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* Heap(){
size_t size = 0 , capacity = 16;
char* str = malloc(capacity * sizeof(char));
if(!str)return NULL;
int c;
while((c = getchar()) != '\n' && c != EOF){
if(size + 1 >= capacity){
capacity *= 2;
char* temp = realloc(str,capacity);
if(!temp){
free(str);
return NULL;
}
str = temp;
}
str[size++] = (char)c;
str[size] = '\0';
}
return str;
}
void SelectionSort(char* str,size_t len){
for(int i = 0 ; i < len-1 ; i++){
int min = i;
for(int j = i+1 ; j < len ; j++){
if(str[min]>str[j]){
min = j;
}
}
char temp = str[min];
str[min] = str[i];
str[i] = temp;
}
}
void Printstr(char* str,size_t len){
char last = '\0';
for(int i = 0 ; i < len ; i++){
if(str[i] != last){
printf("%c ",str[i]);
}
last = str[i];
}
}
int main(void){
char* str = Heap();
size_t len;
if(!str)return 1;
len = strlen(str);
SelectionSort(str,len);
Printstr(str,len);
free(str);
str = NULL;
return 0;
}