検索
ホームページバックエンド開発C++文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。

文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。

この問題では、3 番目の部分文字列が最初の 2 つの部分文字列の部分文字列になるように、指定された文字列を分割する必要があります。

解決策を考えてみましょう。最初の 2 つの文字列に 3 番目の文字列のすべての文字が含まれている場合にのみ、3 番目の文字列を最初の 2 つの文字列の部分文字列にすることができます。したがって、指定された文字列内で頻度が 3 を超える文字を少なくとも 1 つ見つける必要があり、その 1 文字の 3 番目の部分文字列を取得できます。

問題文 - N 個の小文字のアルファベットを含む文字列 str が与えられています。部分文字列 c が a と b の部分文字列になるように、文字列を 3 つの部分文字列 a、b、c に分割できるかどうかを確認する必要があります。 3 つの部分文字列が見つかるかどうかに応じて、「はい」または「いいえ」を出力します。

###例### リーリー リーリー

イラスト

ここで、文字列を「tu」、「torialsPoin」、「t」に分割できます。したがって、3 番目の文字列は最初の 2 つの文字列の部分文字列になります。

リーリー リーリー

イラスト

どの文字の頻度も 3 を超えないため、指定された条件に基づいて文字列を 3 つの部分文字列に分割することはできません。

リーリー リーリー

イラスト

指定された条件によると、3 つの部分文字列

は 'h'、'h'、および 'hhahah' になります。 方法1

このメソッドでは、配列を使用して各文字の頻度を保存します。その後、頻度が 3 以上の文字を確認します。

###アルゴリズム###

ステップ 1
    - 長さ 26 の「freq」配列を定義します。
  • ステップ 2
  • - 文字列をループして、文字の頻度をカウントします。 for ループで、freq[str[i] – ‘a’] の値をインクリメントします。ここで、str[i] – ‘a’ は 0 ~ 26 のインデックスを与えます。
  • ステップ 3
  • - 次に、「freq」配列をループし、配列インデックスの値が「3」より大きい場合に true を返します。
  • ステップ 4
  • - ループが終了すると true を返します。
  • ステップ 5
  • - isSUbStringPossible() 関数の戻り値に基づいて、「はい」または「いいえ」を出力します。
  • ###例### リーリー ###出力### リーリー 時間計算量 - O(N)、文字列を反復処理する場合。

  • 定長配列を使用するため、空間計算量 - O(1)。

方法 2

このメソッドでは、まず文字列を文字配列に変換します。その後、 count() メソッドを使用して、配列内の特定の文字の頻度をカウントします。

###アルゴリズム###

ステップ 1

- サイズ「len 1」の配列を作成します。「len」は文字列の長さです。

ステップ 2
    - strcpy() メソッドを使用して、文字列を char 配列にコピーします。
  • ステップ 3
  • - for ループを合計 26 回繰り返します。
  • ステップ 4
  • - for ループで count() メソッドを使用して、特定の文字の出現数をカウントします。
  • count() メソッドは、最初の引数として開始位置への参照、2 番目の引数として終了位置への参照、そして 3 番目の引数として文字を受け取ります。

    ここでは、文字の ASCII 値をパラメータとして渡す必要があり、I ‘a’ を使用して値を取得します。
  • ステップ 5 - count() メソッドが 3 以上を返す場合は true を返します。

  • ステップ 6

    - ループが終了すると false を返します。
  • ###例### リーリー ###出力### リーリー 時間計算量 - count() メソッドが char 配列を反復して文字数をカウントするため、O(N)。また、strcpy() メソッドには O(N) 時間がかかります。

  • 文字列を文字配列に格納するため、空間複雑度 - O(N)。
  • ###結論は###

    文字列を 3 つの部分文字列に分割し、1 つの部分文字列が他の 2 つの部分文字列の部分文字列になるようにする 2 つの方法を学習しました。 2 番目の方法のコードは読みやすく、初心者にも優しいですが、時間とスペースがより高価になります。

以上が文字列を 3 つの部分文字列に分割できるかどうかを確認します。1 つの部分文字列は他の 2 つの部分文字列の部分文字列です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
如何在Python中检查一个对象是否可迭代?如何在Python中检查一个对象是否可迭代?Aug 25, 2023 pm 10:05 PM

可迭代对象是可以使用循环或可迭代函数迭代其所有元素的对象。列表、字符串、字典、元组等都称为可迭代对象。在Python语言中,有多种方法可以检查对象是否可迭代。让我们一一看看。使用循环在Python中,我们有两种循环技术,一种是使用“for”循环,另一种是使用“while”循环。使用这两个循环中的任何一个,我们可以检查给定的对象是否可迭代。示例在这个例子中,我们将尝试使用“for”循环迭代一个对象并检查它是否被迭代。以下是代码。l=["apple",22,"orang

MySQL中如何使用LOCATE函数查找子字符串在字符串中的位置MySQL中如何使用LOCATE函数查找子字符串在字符串中的位置Jul 25, 2023 am 09:45 AM

MySQL中如何使用LOCATE函数查找子字符串在字符串中的位置在MySQL中,有许多函数可以用来处理字符串。其中,LOCATE函数是一种非常有用的函数,可以用来查找子字符串在字符串中的位置。LOCATE函数的语法如下:LOCATE(substring,string,[position])其中,substring为要查找的子字符串,string为要在其中

在Java中递归地计算子字符串出现的次数在Java中递归地计算子字符串出现的次数Sep 17, 2023 pm 07:49 PM

给定两个字符串str_1和str_2。目标是使用递归过程计算字符串str1中子字符串str2的出现次数。递归函数是在其定义中调用自身的函数。如果str1是"Iknowthatyouknowthatiknow",str2是"know"出现次数为-3让我们通过示例来理解。例如输入str1="TPisTPareTPamTP",str2="TP";输出Countofoccurrencesofasubstringrecursi

strtok_r()函数是C语言中的一个函数,它的作用是将字符串分割成一系列子字符串strtok_r()函数是C语言中的一个函数,它的作用是将字符串分割成一系列子字符串Aug 26, 2023 am 09:45 AM

该函数与strtok()函数类似。唯一的关键区别是_r,它被称为可重入函数。可重入函数是在执行过程中可以被中断的函数。这种类型的函数可用于恢复执行。因此,可重入函数是线程安全的,这意味着它们可以安全地被线程中断,而不会造成任何损害。strtok_r()函数有一个称为上下文的额外参数。这样函数就可以在正确的位置恢复。strtok_r()函数的语法如下:#include<string.h>char*strtok_r(char*string,constchar*limiter,char**

win11改win10系统教程的详细介绍win11改win10系统教程的详细介绍Jul 08, 2023 pm 09:21 PM

微软6月24号正式公布了win11系统,可以看到用户界面、开始菜单等和Windows10X中发现的非常相似。有的朋友在使用预览版的时候发现用的不习惯,想要改win10系统开使用,那么我们要如何操作呢,下面我们就来看看win11改win10系统教程,一起来学习一下吧。1、第一步是从Windows11打开新设置。在这里,您需要转到图像中显示的系统设置。2、在系统设置下,选择“恢复”选项。在这里,您将能够看到“以前版本的窗口”选项。您还可以在它旁边看到一个“返回”按钮,单击此按钮。3、您可以指定要返回

PHP中如何使用PHP-CS-Fixer进行代码风格检查PHP中如何使用PHP-CS-Fixer进行代码风格检查Jun 27, 2023 pm 01:27 PM

在开发过程中,良好的代码风格是提高代码质量和可读性的重要因素。而PHP作为当今市场上应用最广泛的编程语言之一,其代码风格检查也显得尤为重要。在这里,我们将介绍一种PHP代码风格检查工具——PHP-CS-Fixer,并详细讲解如何在其上进行代码风格检查。首先,我们需要了解PHP-CS-Fixer是什么。PHP-CS-Fixer是一个由Symfony框架创建的P

Python 3.x 中如何使用split()函数将字符串按照指定分隔符分割Python 3.x 中如何使用split()函数将字符串按照指定分隔符分割Jul 31, 2023 pm 08:33 PM

Python是一种流行的编程语言,它提供了许多内置函数来处理字符串。其中一个常用的函数是split()函数,可以按照指定的分隔符将字符串分割成多个子串。本文将介绍如何在Python3.x中使用split()函数。在Python中,split()函数是字符串类的一个内置函数,它的基本语法如下:string.split(separator,maxsplit)

在Python中检查字符串是否存在于PDF文件中在Python中检查字符串是否存在于PDF文件中Aug 19, 2023 pm 05:57 PM

在当今的数字世界中,PDF文件已成为存储和共享信息的重要媒介。然而,有时候在PDF文档中查找特定的文本字符串可能会很困难,特别是当文件很长或复杂时。这就是流行的编程语言Python派上用场的地方。Python提供了几个库,允许我们与PDF文件进行交互并从中提取信息。一个常见的任务是在PDF文件中搜索特定的字符串。这可以用于各种目的,如数据分析、文本挖掘或信息检索。在这个背景下,我们有一个问题,我们想要检查一个特定的字符串是否存在于一个PDF文件中。为了解决这个问题,我们可以使用两种不同的方法。第

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)