返回列表 發帖

e307. 請讓我留在你的回憶裡


mmap解法參考:
  1. #include<bits/stdc++.h>
  2. #include<sys/mman.h>
  3. #include<sys/stat.h>
  4. #include<fcntl.h>
  5. #include<unistd.h>
  6. using namespace std;
  7. int main()
  8. {
  9.        
  10.         int fd = fileno(stdin);
  11.         struct stat sb;
  12.         fstat(fd, &sb);
  13.         size_t length = sb.st_size;//以上是獲取檔案描述符
  14.        
  15.         char *buffer = (char *)mmap(nullptr, length, PROT_READ, MAP_PRIVATE, fd, 0);
  16.        
  17.         int c = 0;
  18.         vector<char> ans;
  19.         for (int i = 0; i < length; i++) {
  20.             if (buffer[i] != ' ') {
  21.                     if(c % 2 == 1)
  22.                             ans.push_back(' ');
  23.                 ans.push_back(buffer[i]);
  24.                 c = 0;
  25.             } else {
  26.                 c++;
  27.             }
  28.         }
  29.         cout.write(ans.data(), ans.size());
  30.         cout << '\n';
  31.         return 0;
  32. }
複製代碼
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

返回列表