【华为上机真题 2022】相对开音节

news2024/11/14 14:02:03

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏: 数据结构和算法成神路【精讲】优质好文持续更新中……🚀🚀🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

一、题目描述

1.1 输入描述

1.2 输出描述

1.3 测试样例

1.3.1 示例 1

1.3.2 示例 2

二、解题思路

三、代码实现

四、时间复杂度


一、题目描述

相对开音节构成的结构是: 辅音 + 元音(aeiou) + 辅音(r除外) + e,常见的单词有bike、cake等。

给定一个字符串,以空格为分隔符,反转每个单词中的字母(若单词中包含如数字等其他非字母时不进行反转)。反转后计算其中含有相对开音节结构的子串个数(连续的子串中部分字符可以重复)。

1.1 输入描述

一行空格分隔单词的字符串,字符串长度 < 10000,字母都是小写字母。

1.2 输出描述

含有相对开音节结构的子串个数。注:个数 < 10000。

1.3 测试样例

1.3.1 示例 1

输入

ekam a ekac

输出

2

说明:字符串反转后为 make a cake 其中make、cake 为相对开音节子串,总是为 2 个,返回 2。

1.3.2 示例 2

输入

!ekam a ekekac

输出

2

说明:反转后为 !ekam a cakeke 因为 !ekam 含有非英文字符所有不能反转,反转后的 cake、keke 都是相对开音节子串,所以返回 2。
 

二、解题思路

本题比较简单,按照相对开音节的规则查找所有子串即可。步骤如下所示:

(1)首先,将整个字符串按照空格切分为一个个的子串;

(2)判断当前以空格为分隔的子串是否需要翻转,如果符合条件则翻转子串;

(3)然后,判断子串中每四个连续字符连接组成的子串是否符合相对开音节的规则,符合则总数加 1;

(4)比较下一个以空格分隔的子串,直到比较完所有的以空格为分隔出的子串。

三、代码实现

代码实现如下所示。

#include <iostream>
#include <string>
#include <sstream>
#include <stdlib.h>
#include <algorithm>
using namespace std;

bool isVowel(char ch)
{
    char vow[] = {'a', 'e', 'i', 'o', 'u'};
    for (int i = 0; i < 5; ++i) {
        if (vow[i] == ch) {
            return true;
        }
    }
    return false;
}

int isVowelStr(string str)
{
    if (!isVowel(str[0]) && isVowel(str[1]) && (!isVowel(str[2]) && str[2] != 'r')) {
        return 1;
    }
    return 0;
}

bool isAlph(string str)
{
    int n = str.size();
    for (int i = 0; i < n; ++i) {
        if (!isalpha(str[i])) {
            return false;
        }
    }
    return true;
}

int main()
{
    string str;
    while (getline(cin, str)) {
        int num = 0;
        stringstream stream(str);
        while (getline(stream, str, ' ')) {
            int n = str.size();
            if (n < 4) {
                continue;
            }
            if (isAlph(str)) {
                reverse(str.begin(), str.end());
            }

            for (int i = 0; i < n - 3; ++i) {
                if (str[i + 3] == 'e') {
                    num += isVowelStr(str.substr(i, 3));
                }
            }
        }
        cout<<num<<endl;
    }
    return 0;
}

四、时间复杂度

时间复杂度:O(n)

在上述代码中,需要遍历字符串查找有多少个字符串符合规则。


🎈 感觉有帮助记得「一键三连支持下哦!有问题可在评论区留言💬,感谢大家的一路支持!🤞猿哥将持续输出「优质文章回馈大家!🤞🌹🌹🌹🌹🌹🌹🤞


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无需注册账号】只需两步, Ai Studio上也可以玩[ChatGPT]了

☆ 只需两步&#xff0c; Ai Studio上也可以玩[ChatGPT]了 ☆ 无需账号即可体验喽~ 体验地址 只需两步&#xff0c; Ai Studio上也可以玩[ChatGPT]了 文章目录☆ 只需两步&#xff0c; Ai Studio上也可以玩[ChatGPT]了 ☆0 Fork后进入项目应用中心体验☆本页面下方体验☆注意…

5G无线技术基础自学系列 | 勘测准备

素材来源&#xff1a;《5G无线网络规划与优化》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 基站在详细的勘测之前需要做的准备包括…

CN_UDP协议

文章目录UDP协议UDP概述UDP的首部格式UDP数据报封装入IP数据报UDP校验伪首部真首部UDP数据报处理例UDP vs TCPUDP协议 User Datagram Protocol - Wikipedia 1Attributes2Ports3UDP datagram structure4Checksum computation 4.1IPv4 pseudo header4.2IPv6 pseudo header 5Reli…

百度安全查询,查询网址是否存在百度安全风险的方法

如果网站被百度安全识别为风险网站&#xff0c;或者是提示该页面可能存在虚假信息&#xff0c;该页面可能已被非法篡改&#xff0c;那么就不妙了。 怎样才能知道自己的网是否存在百度安全风险&#xff1f; 查询网站百度安全的方法: 第一步、打开SEO综合查询工具 第二步、添加…

[附源码]Python计算机毕业设计SSM基于的校园失物招领平台(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

线程池 (通俗易懂)

线程池一、线程池是什么二、标准库中的线程池三、实现线程池3.1 思路与细节3.2 完整代码四、标准库里的构造方法一、线程池是什么 之前我们已经认识过"池"&#xff1a;String&#xff0c;字符串常量池&#xff1b;MySQL JDBC&#xff0c;数据库连接池(DataSource)……

【案例实践】EKMA曲线及大气O3来源解析

【查看原文】EKMA曲线及大气O3来源解析实践技术应用 目前&#xff0c;大气臭氧污染成为我国“十四五”期间亟待解决的环境问题。臭氧污染不仅对气候有重要影响&#xff0c;而且对人体健康、植物生长均有严重损害。为了高效、精准地治理区域大气臭氧污染&#xff0c;首先需要了…

【OpenCV学习】第14课:边缘检测与自定义线性滤波(卷积, Rebert算子, Sobel算子, 拉普拉斯算子)

仅自学做笔记用,后续有错误会更改 参考文章&#xff1a;http://t.zoukankan.com/whw1314-p-12007928.html 理论 卷积的概念&#xff1a; 在图像上使用卷积的目的&#xff1a;模糊图像&#xff0c; 提取边缘轮廓&#xff0c; 图像锐化等 卷积如何工作&#xff1a; 下边给出…

MATLB|基于燃料电池混合动力汽车双层凸优化

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

算法基础篇-01-时间复杂度和空间复杂度

1. 用什么表示算法的运行快慢&#xff1f; n 代表是算法里面的问题规模&#xff0c;n越大&#xff0c;运算越慢&#xff0c;比如n1和n100肯定是不一样的&#xff1b;机器不一样&#xff0c;相同的算法代码运行所消耗的时间也不一样&#xff1b; 2. 借用生活中的案例 类比生活中…

[附源码]Python计算机毕业设计SSM基于的校园卡管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

鸿蒙开发初体验以及遇到的几点坑

今天尝试了一下鸿蒙开发&#xff0c;有一些经验跟大家进行分享。建议大家先看完我的文章&#xff0c;再去尝试鸿蒙。 我安装好了开发工具&#xff0c;并且跑通了Hello World程序。同时&#xff0c;我还跑通了小鸿网课Java版本项目&#xff1a; 感觉&#xff0c;还好吧… 操作…

[附源码]Python计算机毕业设计SSM基于的小型房屋租赁平台(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

WordPress后台添加顶级菜单add_menu_page()函数的用法及实例代码

WordPress后台管理页面包括文章、多媒体、链接、页面、评论、外观、插件......等等主菜单选项&#xff0c;我们在开发主题和插件的时候经常需要在后台添加菜单。 目录 一、WordPress后台添加顶级菜单 概述 一、add_menu_page()函数介绍 三、参数详解 四、Wordpress默认菜…

零基础怎么入门Python?

“零基础可以学习Python吗&#xff1f;” 这是很多初学者经常问的一个问题&#xff0c;我的回答是可以&#xff01; 现在很多小学、初中也开始学习编程语言&#xff0c;选择的入门语言就是Python。 Python其实和学中文没什么区别&#xff0c;学习中文是为了更好的和人沟通&a…

【redis事务】@Transactional对Redis事务起作用(包含redis+lua)

【redis事务】Transactional对Redis事务起作用&#xff08;包含redislua&#xff09;一、前言二、准备三、StringRedisTemplate 开启事务四、关键代码&#xff08;验证Transactional对redis事务是否生效&#xff09;五、关键代码&#xff08;验证Transactional对redislua是否生…

回顾Redis之对象与数据结构

引言 Redis是一款基于键值对的数据结构存储系统&#xff0c;它的特点是基于内存操作、单线程处理命令、IO多路复用模型处理网络请求、键值对存储与简单丰富的数据结构等等 这篇文章主要围绕Redis中的对象与数据结构来详细说明键值对存储与简单丰富的数据结构这两大特点 Redi…

CSS 实现一个3d魔方

前言 &#x1f44f;CSS 实现一个3d魔方&#xff0c;速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 魔方的一面为九个圆角正方形&#xff0c;定义正方形的宽高为–w&#xff0c;九个正方形的直接的间距为–gap&#xff0c;…

Spring整合其他技术

Spring整合其他技术 1 Spring整合mybatis 1.1 思路分析 问题导入 mybatis进行数据层操作的核心对象是谁&#xff1f; 1.1.1 MyBatis程序核心对象分析 1.1.2 整合MyBatis 使用SqlSessionFactoryBean封装SqlSessionFactory需要的环境信息 使用MapperScannerConfigurer加载…

安卓玩机搞机技巧综合资源----手机显秒设置 多种方式【十一】

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…