WA 80 求助
查看原帖
WA 80 求助
726139
残阳如血楼主2024/9/4 21:50
#include <bits/stdc++.h>

int cnt; // 字母数量
std::string str, s2;
const std::unordered_set<char> set({'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'});

int count_yuan() {
  int res = 0;
  for (int i = 0; i < s2.size(); ++i) {
    if (set.find(s2[i]) != set.end()) ++res;
  }
  return res;
}

void ask1() {
  for (auto ch : str) {
    if (isalpha(ch)) std::cout << '.', ++cnt;
    else std::cout << ch;
  }
  std::cout << std::endl;
}

void ask2() {
  int t = round(cnt / 3.0), p = 0;
  for (auto ch : str) {
    if (isalpha(ch)) {
      if (p < t) std::cout << ch, ++p, s2.push_back(ch);
      else std::cout << '.', s2.push_back('.');
    } else std::cout << ch, s2.push_back(ch);
  }
  std::cout << std::endl;
}

void ask3() {
  int y = count_yuan();
  // std::cout << "y = " << y << std::endl;
  if (y) {
    for (int i = 0; i < str.size(); ++i) {
      if (s2[i] != '.') std::cout << s2[i];
      else if (set.find(str[i]) != set.end()) std::cout << str[i];
      else std::cout << '.';
    }
    std::cout << std::endl;
  } else {
    int t = round(cnt * 2 / 3.0), p = 0;
    for (auto ch : str) {
      if (isalpha(ch)) {
        if (p < t) std::cout << ch, ++p;
        else std::cout << '.';
      } else std::cout << ch;
    }
    std::cout << std::endl;
  }
}

int main() {
  std::getline(std::cin, str);
  ask1(), ask2(), ask3();
  return 0;
}
2024/9/4 21:50
加载中...