记录编号 30237 评测结果 AAAAAAAAAA
题目名称 字符串编辑 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2011-10-28 13:19:48 内存使用 0.27 MiB
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <cstdlib>
  5. using namespace std;
  6. char str[500];
  7. unsigned int len;
  8.  
  9. bool Delete(char s)
  10. {
  11. int loc;
  12. bool flag=false;
  13. for (unsigned int i=0;i<len;i++)
  14. {
  15. if(str[i]==s)
  16. {
  17. loc=i;
  18. flag=true;
  19. break;
  20. }
  21. }
  22. if(!flag)
  23. return false;
  24. for (unsigned int i=loc;i<len;i++)
  25. {
  26. str[i]=str[i+1];
  27. }
  28. len--;
  29. return true;
  30. }
  31.  
  32. bool Insert(char c,char s)
  33. {
  34. int loc;
  35. bool flag=false;
  36. for (int i=len-1;i>=0;i--)
  37. {
  38. if(str[i]==c)
  39. {
  40. loc=i;
  41. flag=true;
  42. break;
  43. }
  44. }
  45. if(!flag)
  46. return false;
  47. for (int i=len;i>loc;i--)
  48. str[i]=str[i-1];
  49. str[loc]=s;
  50. len++;
  51. return true;
  52. }
  53.  
  54. bool Replace(char c,char s)
  55. {
  56. bool flag=false;
  57. for (unsigned int i=0;i<len;i++)
  58. {
  59. if(str[i]==c)
  60. {
  61. str[i]=s;
  62. flag=true;
  63. }
  64. }
  65. if(!flag)
  66. return false;
  67. return true;
  68. }
  69.  
  70. int main()
  71. {
  72. freopen("edit.in","r",stdin);
  73. freopen("edit.out","w",stdout);
  74. memset(str,'\0',sizeof(str));
  75. scanf("%[^\n]",&str);
  76. len=strlen(str);
  77. char a;
  78. char b;
  79. char c;
  80. bool flag;
  81. cin>>a;
  82. if(a=='D')
  83. {
  84. cin>>b;
  85. flag=Delete(b);
  86. //if(flag)
  87. //{
  88. for (unsigned int i=0;i<len;i++)
  89. cout<<str[i];
  90. //}
  91. //else
  92. //cout<<"error"<<endl;
  93. return 0;
  94. }
  95. if(a=='I')
  96. {
  97. cin>>b>>c;
  98. flag=Insert(b,c);
  99. //if(flag)
  100. //{
  101. for (unsigned int i=0;i<len;i++)
  102. cout<<str[i];
  103. //}
  104. //else
  105. // cout<<"error"<<endl;
  106. return 0;
  107. }
  108. if(a=='R')
  109. {
  110. cin>>b>>c;
  111. flag=Replace(b,c);
  112. if(flag)
  113. {
  114. for (unsigned int i=0;i<len;i++)
  115. cout<<str[i];
  116. }
  117. else
  118. cout<<"error"<<endl;
  119. return 0;
  120. }
  121. return 0;
  122. }