c语言给定一个由大写字母组成长度为n的字符串,请在字符串中删除m个字符,使得剩下的字符串的字典序最小
时间: 2024-06-13 09:05:59 浏览: 108
```c
#include <stdio.h>
#include <string.h>
#define MAXN 100
char s[MAXN], ans[MAXN];
int main() {
int m;
scanf("%s%d", s, &m);
int len = strlen(s);
int top = 0;
for (int i = 0; i < len; i++) {
while (top && m && ans[top - 1] > s[i]) {
top--;
m--;
}
ans[top++] = s[i];
}
top -= m;
ans[top] = '\0';
printf("%s\n", ans);
return 0;
}
```
--相关问题--:
1. 如何在C语言中实现字符串的反转?
2. 如何在C语
相关问题
用c语言给定一个由大写字母组成的长度为n的字符串,请在字符串中删除m个字符,使得剩下的字符串的字典序最小
以下是C语言实现给定一个由大写字母组成的长度为n的字符串,请在字符串中删除m个字符,使得剩下的字符串的字典序最小的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[101];
int m, len, i, j;
scanf("%s %d", str, &m);
len = strlen(str);
for(i = 0; i < len && m > 0; i++)
{
for(j = i + 1; j < len && j <= i + m; j++)
{
if(str[j] < str[i])
{
m--;
for(int k = j; k > i; k--)
{
char temp = str[k];
str[k] = str[k - 1];
str[k - 1] = temp;
}
break;
}
}
}
printf("%s\n", str);
return 0;
}
```
用c语言实现给定一个由大写字母组成的长度为 n 的字符串,请在字符串中删除 m 个字符,使得剩下的字符串的字典序最小。
以下是用C语言实现给定一个由大写字母组成的长度为n的字符串,请在字符串中删除m个字符,使得剩下的字符串的字典序最小的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int n, m, i, j;
scanf("%d %d", &n, &m);
scanf("%s", str);
for (i = 0; i < m; i++) {
for (j = 0; j < n - 1; j++) {
if (str[j] > str[j + 1]) {
str[j] = ' ';
break;
}
}
}
for (i = 0; i < n; i++) {
if (str[i] != ' ') {
printf("%c", str[i]);
}
}
return 0;
}
```
阅读全文