Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. /*
  2.  
  3. input: vetor de caracteres
  4. retorna: o comprimento do vetor de caracteres comprimido
  5. após a repetição de caracteres iguais, deve-se colocar apenas uma ocorrencia deste caractere, e sua quantidade
  6.  
  7. 2
  8. R
  9. ["a","2","b","2","c","3","c"]
  10.  
  11. R
  12. ["a", "3", "b", "b"]
  13. x
  14.  
  15. ["a", "b"]
  16. ["a", "b"]
  17.  
  18. ["a", "b", "b"]
  19. ["a", "b", "b"]
  20.  
  21.  
  22. */
  23.  
  24. // input = 123
  25. //
  26. vector<char> intToCharVector(int input) {
  27. if (input == 0) {
  28. answer.push_back('0');
  29. return answer;
  30. }
  31.  
  32. while (input > 0) {
  33. int lastDigit = input % 10; // 1
  34. char lastDigitChar = lastDigit + '0';
  35. answer.push_back(lastDigitChar);
  36.  
  37. input /= 10;
  38. }
  39.  
  40. reverse(answer.begin(), answer.end());
  41. return answer;
  42. }
  43.  
  44. Ri
  45. // ["a","2","b","2","c","3","c"]
  46. int solve(vector<char> &input) {
  47. if (input.size() == 0) {
  48. return input.size();
  49. }
  50.  
  51. int currentCharCount = 0; // 3
  52. int writePointer = 0; // 0
  53.  
  54. for (int i = 0; i < input.size(); i++) {
  55. currentCharCount += 1;
  56.  
  57. if (i == input.size() - 1 || s[i] != s[i+1]) {
  58. input[writePointer] = currentChar;
  59. writePointer++;
  60.  
  61. if (currentCharCount > 1) {
  62. vector<char> digits = intToCharVector(currentCharCount);
  63. for (auto d : digits) {
  64. input[writePointer] = d;
  65. writePointer++;
  66. }
  67. }
  68.  
  69. currentCharCount = 0;
  70. }
  71. }
  72.  
  73. return writePointer;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement