当前位置:   article > 正文

最小调整次数【C语言】_c语言求最小排序次数

c语言求最小排序次数
  1. /*
  2. 【字符串,逻辑分析】
  3. 给定一个队列,但是这个队列比较特殊,可以从头部添加数据,也可以从尾部添加数据,但是只能从头部删除数据。
  4. 输入一个数字n,会依次添加数字1~n (也就是添加n次)。
  5. 但是在添加数据的过程中,也会删除数据,要求删除必须按照1~n按照顺序进行删除,所以在删除时,可以根据需要调整队列中数字的顺序以满足删除条件。
  6. 输入描述:
  7. 第一行一个数据N,表示数据的范围。
  8. 接下来的2N行是添加和删除语句。
  9. 其中: head add x表示从头部添加元素x,tail add x表示从尾部添加元素x,remove表示删除元素。
  10. 输出描述:
  11. 输出一个数字,表示最小的调整顺序次数。
  12. 示例:
  13. 5
  14. head add 1
  15. tail add 2
  16. remove
  17. head add 3
  18. tail add 4
  19. head add 5
  20. remove
  21. remove
  22. remove
  23. remove
  24. 输出:
  25. 1
  26. 说明:
  27. 第1步:[1]
  28. 第2步:[1,2]
  29. 第3步:头部删除1,无需调整,还剩[2]
  30. 第4步:[3,2]
  31. 第5步:[3,2,4]
  32. 第6步:[5,3,2,4]
  33. 第7步:头部删除2,调整顺序再删除,还剩[3,4,5]
  34. 第8步:头部删除3,无需调整,还剩[4,5]
  35. 第9步:头部删除4,无需调整,还剩[5]
  36. 第10步:头部删除5,无需调整
  37. 只需要调整1次
  38. */
  39. #include <stdio.h>
  40. #include <stdlib.h>
  41. #include <string.h>
  42. #include <stdbool.h>
  43. #define MIN(a, b) ((a) < (b)) ? (a) : (b)
  44. #define MAX(a, b) ((a) > (b)) ? (a) : (b)
  45. int main () {
  46. int n;
  47. scanf("%d", &n);
  48. getchar();
  49. int times = 0;//调整顺序次数
  50. int size = 0;//队列内数字个数
  51. bool isSorted = true;//开始时为有序
  52. for (int i = 0; i < n * 2 ; i++) {//要循环10次
  53. char input_str[1000];
  54. fgets(input_str, 1000, stdin);
  55. char* sub_str[100];
  56. char* token = strtok(input_str, " ");
  57. int count = 0;
  58. while (token != NULL) {
  59. sub_str[count] = token;
  60. count++;
  61. token = strtok(NULL, " ");
  62. }
  63. if(count == 3){//即输入的是head add/tail add语句
  64. if(size != 0){
  65. //size = 0时不破坏顺序
  66. //size != 0时head破坏,tail不破坏
  67. if(strcmp(sub_str[0], "head") == 0 ){//strcmp相等返回0
  68. isSorted = false;
  69. }
  70. }
  71. size ++;//不管head还是tail都要size++
  72. }
  73. if(count == 1){//输入的是remove语句
  74. size--;
  75. if(isSorted == false){//顺序破坏了就要调整并计数
  76. times++;
  77. isSorted = true;
  78. }
  79. }
  80. }
  81. printf("%d",times);
  82. return 0;
  83. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/78830
推荐阅读
相关标签
  

闽ICP备14008679号