【C++】B2122 单词翻转

【C++】B2122 单词翻转

在这里插入图片描述

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: C++


文章目录


在这里插入图片描述

💯前言

在计算机科学中,字符串处理是一个非常基础且常见的任务。本题主要围绕如何将一个句子中的每个单词反转来进行练习。这个问题不仅考察了对字符串操作的理解,还涉及了不同的解决方法。在本篇文章中,我们将详细探讨我自己的做法、老师提出的两种做法,并深入讲解C++中 reverse 函数的使用,最后通过对比和拓展分析这些方法的优缺点。
C++ 参考手册

在这里插入图片描述

💯题目描述

B2122 单词翻转

在这里插入图片描述

小明同学写单词的时候喜欢反着写,比如 hello 他会写成 olleh。给出小明同学写的一个句子,请你将所有的单词复原。

输入格式

共一行,一个字符串表示句子,单词之间以空格分隔。

输出格式

每个单词一行。

样例 #1

样例输入 #1

olleh dlrow 

样例输出 #1

hello world 

💯一、我的做法

代码实现:

#include<iostream>#include<string>usingnamespace std;intmain(){  string s;while(cin >> s){ for(int i = s.size()-1; i >=0; i--){  cout << s[i];} cout << endl;}return0;}

代码解析

在这个实现中,我选择了通过手动反转每个单词的字符来恢复正确的单词顺序。

  1. 变量声明
    • string s;:声明一个字符串变量 s 用于存储从输入中读取的每个单词。
  2. 读取输入
    • while(cin >> s):使用 cin >> s 读取一个单词,直到没有更多输入。
  3. 反转每个单词
    • for(int i = s.size() - 1; i >= 0; i--):我们使用一个从单词末尾到开头的 for 循环,通过访问每个字符并逆序输出,来实现反转操作。
  4. 输出每个单词
    • cout << s[i];:逐个输出反转后的字符。
  5. 换行
    • 每个单词输出后,使用 cout << endl; 换行,确保每个单词占一行。

思路分析

这段代码通过遍历每个字符并从末尾到开头进行输出来实现反转。通过这种手动操作字符的方式,能够准确地完成任务。它的优点是直接且易于理解,但缺点是代码稍显冗长,且没有利用C++标准库提供的便捷工具。


💯二、老师的第一种做法

老师给出的第一种做法是通过手动交换字符串中的字符来反转单词。下面是老师的代码实现:

代码实现:

#include<iostream>#include<cstring>usingnamespace std;intmain(){  string str;while(cin >> str){ int left =0;int right = str.size()-1

Read more

Flutter for OpenHarmony: Flutter 三方库 week_of_year 为鸿蒙应用提供精准的年度周数统计与业务分析支持(日历计算专家)

Flutter for OpenHarmony: Flutter 三方库 week_of_year 为鸿蒙应用提供精准的年度周数统计与业务分析支持(日历计算专家)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 的办公自动化(OA)、排班管理或财务统计应用开发时,我们经常需要处理“周”的概念。 1. 周报提交:今天是今年的第几周? 2. 生产计划:第 15 周需要完成哪些鸿蒙节点的部署? 3. 数据报表:按周对鸿蒙设备的运行状态进行汇总。 虽然 Dart 的 DateTime 类非常强大,但它并没有原生支持“获取当前是第几周”。week_of_year 软件包通过对 DateTime 对象的精简扩展,让你能一行代码获取 ISO-8601 标准的周数。 一、周数计算逻辑模型 符合国际标准(ISO-8601)的周数计算,通常将包含一年中第一个周四的那一周定为第 1 周。 DateTime

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 platform_info 为鸿蒙多端应用提供精准的运行时环境感知(平台适配大脑)

Flutter for OpenHarmony: Flutter 三方库 platform_info 为鸿蒙多端应用提供精准的运行时环境感知(平台适配大脑)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,“环境感知”是一切进阶逻辑的基石。 * 当前是鸿蒙手机还是平板? * 应用是处于 Debug 调试态还是 Release 发布态? * 底层硬件到底有多少核处理器? 然而,由于 platform_info (v5.0.0) 尚未正式支持 OpenHarmony,直接调用会导致系统被识别为 Unknown,甚至让关键的 isMobile 判定失效。为了解决这一痛点,我们对该库进行了“手术级”的源码适配。 一、环境感知适配模型 我们将底层的系统标识符转化为 Flutter 开发者熟悉的强类型对象。 底层系统 ('ohos') 补丁适配层 (vm_host_platform) 强类型枚举

By Ne0inhk
Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级 BIP39 安全底座、实现鸿蒙端私钥派生与国密级密钥保护方案

Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级 BIP39 安全底座、实现鸿蒙端私钥派生与国密级密钥保护方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 substrate_bip39 的适配 鸿蒙Harmony 实战 - 驾驭区块链级 BIP39 安全底座、实现鸿蒙端私钥派生与国密级密钥保护方案 前言 在鸿蒙(OpenHarmony)生态向金融科技、Web3.0 以及受控安全办公领域深耕的过程中,“密钥管理(Key Management)”是所有信任链条的起点。面对“如何将助记词(Mnemonic)安全地转化为可用于签名的私钥”、“如何兼容 Polkadot/Substrate 这种具备高阶加密特性的异构账本协议”这些硬核问题,传统的 crypto 库往往力有不逮。 我们需要一种工业级、符合现代跨平台密码学标准(BIP39/Ed25519)的加密底座。 substrate_bip39 是基于 Substrate 框架裁剪出的高性能密钥派生引擎。

By Ne0inhk

Flutter 三方库 posix 的鸿蒙化适配指南 - 掌控底层系统调用、文件权限管理实战、鸿蒙级系统级工具专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 posix 的鸿蒙化适配指南 - 掌控底层系统调用、文件权限管理实战、鸿蒙级系统级工具专家 在鸿蒙跨平台应用开发中,当我们需要实现精密的文件权限操控(如 chmod)、获取系统级用户信息或是管理进程间的信号(Signals)时,高层的 Dart SDK 有时无法提供足够细粒度的控制。如果你需要一种接近 C 语言、直接与鸿蒙内核(Kernel)对话的能力。今天我们要深度解析的 posix——一个旨在为 Dart 提供标准可移植操作系统接口(POSIX)支持的高性能库,正是帮你接管“系统底层主权”的关键插件。 前言 posix 是一套对底层 C 库函数的轻量级封装。它通过 Dart FFI 机制,让你能像写

By Ne0inhk