敲笨钟ptaC++

简介: 敲笨钟ptaC++

substr

string a = "123456";
string sub_a = a.substr(0, 2); // "12"
string sub_a_ = a.substr(2); // "3456"
  • 左闭右开的截取字符串

实现思路

以逗号分割,取出两个字符串。利用substr判断是否以ong结尾,然后使用string流获取每个单词到一个vector中后改变最后三个索引位置的单词为qiao ben zhong.

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
std::string replaceLastThreeWords(std::string input) {
  string result;
  // 统计有几个空格
  int count = 0;
  for (auto s : input) if (s == ' ') count++;
  // 计算出开始替换的空格位置
  int changeLocation = count - 2;
  count = 0;
  for (int i = 0; i < input.size(); i++) {
    if (input[i] == ' ') count++;
    if (count == changeLocation) {
      result = input.substr(0, i + 1);
      result += "qiao ben zhong.";
      return result;
    }
  }
  return "Skipped";
}
bool lastWordEndsWithOng(const std::string& str1, const std::string& str2) {
  if (str1.size() < 3 || str2.size() < 4 || str1.substr(str1.size() - 3) != "ong" || str2.substr(str2.size() - 4) != "ong.")
    return false;
  return true;
}
int main() {
  int n;
  cin >> n;
  cin.ignore(); // 清除换行符
  while (n--) {
    string str;
    getline(cin, str);
    // 以逗号为分割
    size_t slashPos = str.find(',');
    string str1 = str.substr(0, slashPos);
    string str2 = str.substr(slashPos + 1);
    if (!lastWordEndsWithOng(str1, str2)) cout << "Skipped" << endl;
    else cout << replaceLastThreeWords(str) << endl;
  }
}

就是还有两个用例通不过,希望有大佬可以指出

相关文章
|
3天前
|
C++
【PTA】L1-016 验证身份(C++)
【PTA】L1-016 验证身份(C++)
46 0
【PTA】L1-016 验证身份(C++)
|
3天前
|
Java C++
部落(pta)(并查集) Java以及C++
部落(pta)(并查集) Java以及C++
12 2
|
3天前
|
前端开发 JavaScript 测试技术
【PTA】L1-32 Left-pad (C++)
【PTA】L1-32 Left-pad (C++)
20 0
【PTA】L1-32 Left-pad (C++)
|
3天前
|
C++
【PTA】L1-011 A-B (C++)
【PTA】L1-011 A-B (C++)
60 0
【PTA】L1-011 A-B (C++)
|
3天前
|
C++
【PTA】​L1-005 考试座位号​ (C++)
【PTA】​L1-005 考试座位号​ (C++)
74 0
【PTA】​L1-005 考试座位号​ (C++)
|
3天前
|
测试技术 C++
【PTA】​L1-003 个位数统计​ (C++)
【PTA】​L1-003 个位数统计​ (C++)
50 0
【PTA】​L1-003 个位数统计​ (C++)
|
3天前
|
C++
【PTA】L1-020 帅到没朋友 (C++)
【PTA】L1-020 帅到没朋友 (C++)
59 0
【PTA】L1-020 帅到没朋友 (C++)
|
3天前
|
C++
【PTA】​ L1-080 乘法口诀数列​(C++)
【PTA】​ L1-080 乘法口诀数列​(C++)
54 0
【PTA】​ L1-080 乘法口诀数列​(C++)
|
3天前
|
C++
【PTA】​L1-078 吉老师的回归​(C++)
【PTA】​L1-078 吉老师的回归​(C++)
78 0
【PTA】​L1-078 吉老师的回归​(C++)
|
3天前
|
C++
【PTA】​L1-079 天梯赛的善良​ (C++)
【PTA】​L1-079 天梯赛的善良​ (C++)
73 0
【PTA】​L1-079 天梯赛的善良​ (C++)