1
0

delete_number.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. // std::string
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. void output(string);
  6. int main() {
  7. int times;
  8. string INPUT;
  9. cin >> INPUT >> times;
  10. for (int i = 0; i < INPUT.size(); ++i) {
  11. if (times == 0) {
  12. output(INPUT);
  13. return 0;
  14. }
  15. if (INPUT[i] > INPUT[i+1]) {
  16. INPUT.erase(i, 1);
  17. --times, --i;
  18. }
  19. }
  20. while (times--)
  21. INPUT.pop_back();
  22. output(INPUT);
  23. return 0;
  24. }
  25. void output(string str) {
  26. bool flag = false;
  27. for (auto itr = str.begin(); itr != str.end(); ++itr) {
  28. if (flag) break;
  29. if (*itr == '0') {
  30. itr = str.erase(itr);
  31. --itr;
  32. } else
  33. flag = true;
  34. }
  35. cout << str;
  36. }
  37. // Or
  38. #include <iostream>
  39. #include <cstdio>
  40. #include <cstring>
  41. using namespace std;
  42. int main() {
  43. char num[241];
  44. int del;
  45. cin >> num >> del;
  46. for (char* i = num; *i != 0; ) {
  47. if (*i > *(i+1) && del != 0) {
  48. for (char* j = i; *j != 0; ++j)
  49. *j = *(j+1);
  50. i = num;
  51. --del;
  52. } else ++i;
  53. }
  54. while (num[0] == '0' && strlen(num) != 1) {
  55. for (int i = 0; i < strlen(num)+1; ++i) {
  56. num[i] = num[i+1];
  57. }
  58. }
  59. cout << num;
  60. return 0;
  61. }
  62. // 标准答案:
  63. #include <cstdio>
  64. #include <cstring>
  65. using namespace std;
  66. int main() {
  67. int s;
  68. char str[250];
  69. scanf("%s %d", str, &s);
  70. int len = strlen(str);
  71. for (; s!=0; len--, s--) {
  72. int i = 0;
  73. while (str[i] <= str[i+1]) i++;
  74. while (i < len - 1) {
  75. str[i] = str[i+1];
  76. ++i;
  77. }
  78. }
  79. int flag = 1;
  80. for (int i = 0; i < len; ++i) {
  81. if (str[i] == '0' && i < len - 1 && flag == 1) continue;
  82. else {
  83. printf("%c", str[i]);
  84. flag = 0;
  85. }
  86. }
  87. return 0;
  88. }