力扣100284. 有效单词(C++)

news/2024/11/16 23:35:34/

【题解】

(实际在力扣中运行的代码只需要把下方的check函数放到力扣作答区给的模板中就可以)

#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <string>
#include <cctype>
#include <cstring>
#include <string.h>using namespace std;bool check(vector<char > s)
{if(s.size()>=3){int yy=0,fy=0,zc=0;string fyset="bcdfghjklmnpqrstvwxyz";string yyset="aoeiu";for(int i=0;i<s.size();i++){if((s[i]>='0'&&s[i]<='9')||((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))){char c=tolower(s[i]);if(yyset.find(c)!=string::npos)yy++;if(fyset.find(c)!=string::npos)fy++;}else {zc=1;cout<<"s[i]="<<s[i]<<endl;}}//cout<<"fy="<<fy<<",yy="<<yy<<",zc="<<zc<<endl;if(zc==1) return false;else if(yy==0||fy==0)return false;else return true;}else return false;
}int main(int argc, char** argv) {char t;vector<char> ss;int flag=0;while(cin>>t){flag++;if(t=='"'&&flag==1){//flag=1;continue;}else if(t=='"')break;if(flag>=2) ss.push_back(t);}for(int i=0;i<ss.size();i++){//cout<<ss[i];}// cout<<endl;if(check(ss)){cout<<"true";}else cout<<"false";return 0;
}

知识点:对字符串的各种操作、string函数

string s="hello lyh!";

1、截取字符串中的一部分    

substr(起始位置的下标,截取的长度);   //起始位置的下标从0开始

例如:

string ss=s.substr(0,5);// "hello"

2、确定某个集合中是否存在某个元素,可以用map中的count()函数,也可以用string中的内置函数find();

find()函数的所有用法:

在`std::string`类中,`find`函数有多种重载形式,用于查找不同的字符或字符序列。以下是`find`函数的所有重载形式及其参数含义:
1. `size_t find(const string& str, size_t pos = 0) const;`- `str`:要查找的子字符串。- `pos`:开始搜索的位置。默认值为0,表示从字符串的第一个字符开始搜索。
2. `size_t find(const char* s, size_t pos, size_t count) const;`- `s`:要查找的字符序列。- `pos`:开始搜索的位置。默认值为0,表示从字符串的第一个字符开始搜索。- `count`:要查找的字符数量。如果`count`为0,则查找整个字符序列。
3. `size_t find(const char* s, size_t pos = 0) const;`- `s`:要查找的字符序列。- `pos`:开始搜索的位置。默认值为0,表示从字符串的第一个字符开始搜索。
4. `size_t find(const char ch, size_t pos = 0) const;`- `ch`:要查找的字符。- `pos`:开始搜索的位置。默认值为0,表示从字符串的第一个字符开始搜索。
这些函数的作用是返回字符串中第一个匹配的子字符串或字符的起始位置的索引。如果未找到匹配项,则返回`string::npos`。

3、如何在的输入时只读取一串字符串中的某一部分

如题解所示,

(1)、设输入的字符串为char数组,可以利用某个整数表示下标,设置下标为某个值是开始读;

(2)、设置输入的字符串为string类型,可以把整个字符串全读进来,再用substr()去截取;


http://www.ppmy.cn/news/1456059.html

相关文章

AWS详细介绍与GCP比较

AWS&#xff08;Amazon Web Services&#xff09;详细介绍 Amazon Web Services (AWS) 是亚马逊公司的云服务平台&#xff0c;提供广泛的全球云基础设施服务。自2006年推出以来&#xff0c;AWS已发展成为市场上最大、最广泛使用的云服务提供商之一&#xff0c;提供超过200种功…

分布式存储系统学习(1)

1学习来源 《大规模分布式存储系统原理解析与架构实战》--杨传辉 2学习目标 数据分布&#xff1a;如何使数据均匀分布到多台服务器上&#xff1f;分布到多台服务器后如何实现跨服务器读写操作&#xff1f;一致性&#xff1a;如何将数据的多个副本复制到多台服务器&#xff1…

java08基础(值传递和引用传递 类和对象)

目录 一. 值传递和引用传递 1. 值传递 2. 引用传递 二. 面向对象思想 三. 类和对象 1. 类 2. 对象 2.1 使用 2.2 成员变量和局部变量区别 2.3 操作成员方法 2.4 this关键字(初识) 2.5 构造方法 (见java09) 一. 值传递和引用传递 1. 值传递 值传递是指在调用函数时将…

uniapp从数组中删除重复项

在 UniApp&#xff08;或任何使用 JavaScript 的环境中&#xff09;从数组中删除重复项&#xff0c;你可以使用多种方法。以下是一些常见的方法&#xff1a; 1. 使用 filter() 和 indexOf() 你可以使用 Array.prototype.filter() 方法结合 Array.prototype.indexOf() 方法来创…

有效的括号--力扣经典面试题

目录 引言 题目描述: 思路分析: 代码展示: 引言 这道题是关于栈的经典面试题,如果大家对栈这个数据结构不是很了解的话,可以先看这篇博客--数据结构之栈的超详细讲解-CSDN博客 题目描述: 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c…

【操作指南】银河麒麟高级服务器操作系统内核升级——基于4.19.90-17升级

1. 升级清单 升级包及依赖包清单如下。 kernel ARM架构 kernel-core-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-4.19.90-23.18.v2101.ky10.aarch64.rpm kernel-modules-extra-4.19.90-23.18.v2101.ky10.aarch64.r…

数据结构相关

数据结构相关 文章目录 数据结构相关[TOC](文章目录)前言一、数据结构介绍二、不同的逻辑结构的存储方案(Java实现)2.1 线性结构&#xff1a;线性表、数组2.2 线性结构&#xff1a;栈2.3 线性结构&#xff1a;队列2.4 树形结构&#xff1a;树 三、一些常见的3.1 布隆过滤器Bloo…

Java实现mysql的分页及流式查询导出

一、前言 在实际应用中&#xff0c;当我们需要导出大数据量数据时&#xff0c;可能会存在一些问题&#xff0c;因为当我们一下子将数据全部加载出来到内存中&#xff0c;很可能会发生OOM(内存溢出)&#xff0c;而且查询会很慢&#xff0c;因为框架耗费大量的时间和内存去把数据…