首页 > 其他分享 >第六天练习(学习PTA题目的标准答案以及复习string函数知识)

第六天练习(学习PTA题目的标准答案以及复习string函数知识)

时间:2023-04-19 20:33:47浏览次数:32  
标签:count return string int pos PTA 第六天 cout

#include <iostream>
#include <string>
using namespace std;

bool check(string s) {
    int p_pos = -1, t_pos = -1;
    int p_count = 0, t_count = 0;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == 'P') {
            if (p_count > 0) return false; // P重复出现
            p_pos = i;
            p_count++;
        } else if (s[i] == 'T') {
            if (t_count > 0) return false; // T重复出现
            t_pos = i;
            t_count++;
        } else if (s[i] != 'A') {
            return false; // 其他字符出现
        }
    }
    if (p_pos == -1 || t_pos == -1 || p_pos >= t_pos - 1) {
        return false; // 没有P或T或者它们的相对位置不正确
    }
    int a_count_before_p = p_pos;
    int a_count_between_p_t = t_pos - p_pos - 1;
    int a_count_after_t = s.size() - t_pos - 1;
    if (a_count_between_p_t == 0) {
        return a_count_before_p == a_count_after_t; // PAT中A的数量相等
    } else if (a_count_between_p_t > 0) {
        if (a_count_before_p * a_count_between_p_t == a_count_after_t) {
            return true; // 满足形如 xPATx 的条件
        } else {
            int k = a_count_after_t % a_count_between_p_t;
            if (k == 0 && a_count_before_p * a_count_after_t / a_count_between_p_t == a_count_before_p + a_count_after_t) {
                return true; // 满足形如 aPbATca 的条件
            }
        }
    }
    return false;
}

int main() {
    int n;
    cin >> n;
    string s;
    for (int i = 0; i < n; i++) {
        cin >> s;
        if (check(s)) {
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }
    return 0;
}

#include <iostream>
#include <string>
using namespace std;

int main() {
// 字符串拼接
string s1 = "Hello, ";
string s2 = "world!";
string s3 = s1 + s2;
cout << s3 << endl; // 输出:Hello, world!

// 字符串查找
string s4 = "abcdefg";
if (s4.find("cd") != string::npos) {
cout << "Found!" << endl; // 输出:Found!
} else {
cout << "Not found." << endl;
}

// 字符串替换
string s5 = "hello world";
s5.replace(6, 5, "there");
cout << s5 << endl; // 输出:hello there

// 字符串截取
string s6 = "abcdefg";
string s7 = s6.substr(2, 3);
cout << s7 << endl; // 输出:cde

// 字符串转整数
string s8 = "123";
int x = stoi(s8);
cout << x << endl; // 输出:123

// 整数转字符串
int y = 456;
string s9 = to_string(y);
cout << s9 << endl; // 输出:456

return 0;
}

标签:count,return,string,int,pos,PTA,第六天,cout
From: https://www.cnblogs.com/kuandong24/p/17334525.html

相关文章

  • 第六天通用型绕过手法
    空格字符绕过可以用%09,一个用来链接字符串的,%0a,换行符等进行绕过,页面源码是检测到了这个dangerflag也就是空格之后会直接输出检测到关键字 并且sql语句里也能有注释符 可以正常代替空格然后进行绕过大小写绕过因为php是大小写不敏感的,可以通过改变大小写来绕过黑名单以......
  • 天天打卡一小时第六天
    1.问题描述实验2-1猴子吃桃问题一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?输入格式:输入......
  • convert InputStream to String
      publicStringgetContent(finalURLurl){try{InputStreaminputStream=url.openStream();returnnewScanner(inputStream).useDelimiter("\\A").next();}catch(finalExceptione){......
  • String
    1、创建的字符串变量在内存中的区别。两者看似都是创建了一个字符串对象,但在内存中确是各有各的想法。Stringstr1=“abc”;在编译期,JVM会去常量池来查找是否存在“abc”,如果不存在,就在常量池中开辟一个空间来存储“abc”;如果存在,就不用新开辟空间。然后在栈内存中开辟一个名字......
  • 第六天第四个问题
    问题描述:完成今天的第一个问题但是数据由文件中读取。文件第一项是捐款人数,余下的内容应为成对的行,在每一对中,第一行为捐款人的姓名,第二行为数额。解决思路:改进第一个问题代码中的输入数据部分,由用户输入改为读取文件中的信息即可代码:#include<iostream>#include<fstream>#i......
  • 第六天第二个问题
    问题描述:编写一个程序,他每次读取一个单词,直到用户只输入q。然后,该程序指出有多少个单词以元音打头,有多少个单词以辅音打头,还有多少个单词不属于这两类。为此,方法之一是,使用isalpha()来区分以字母和其他字符打头的单词,然后对于通过了isalpha()测试的单词,使用if或switch语句来确定哪些......
  • 团队项目第六天
    我们团队项目预计3周时间,现在已过去17天,实际完成度为70%彭锁群:今日完成:       明日目标:       遇到问题(已解决或未解决):杨凯文:今日完成:       明日目标:       遇到问题(已解决或未解决):杨康:  今日完成:   ......
  • 团队冲刺第六天
    今日完成:分析了部分示例代码的作用,将普通人脸识别所需library库导入到自己的项目中明日目标:将人脸识别代码整合进项目,完成人脸识别遇到问题(已解决或未解决):凡是导入包体这种事情,总会出现一堆错误,不是哪个函数不存在就是包体排斥,不过今天通过大量查阅csdn后还是成功导进去了。......
  • 第六天第三个问题
    问题描述:编写一个程序,它打开一个文本文件,逐个字符读取该文件,直到到达文件末尾,然后指出该文件有多少个字符。解决思路:1.先建立一个字符数组用于读取用户输入的文件名称2.打印询问用户文件的名称3.打开相应文件用cin逐个读取其中的字符,每读取一个就讲记录数加一,读取完成后关闭......
  • 第六天第一个问题
    问题描述:编写一个程序,记录捐助给“维护合法权利团体”的资金。该程序要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被储存在一个动态分配的结构数组中。每个结构有两个成员:用来储存姓名的字符数组(或string对象)和用来存储款项的double成员。读取所有......