Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列がアルファベット順に並んでいるか判定する方法


文字列 s が与えられたとき、その文字がすべてアルファベット順(昇順)に並んでいるかどうかを判定します。

例えば、入力が s = "mnnooop" の場合、各文字は m → n → n → o → o → o → p というように昇順に並んでいるため、出力は True になります。

この問題を解くには、以下の手順に従います。

  • char_arr := 文字列 s を構成する各文字から新しいリストを作成する
  • リスト char_arr を昇順にソートする
  • ソート後の char_arr が元の文字列 s の文字リストと一致すれば true、一致しなければ false を返す

理解を深めるために、以下の実装例を見てみましょう。

サンプルコード

def solve(s):
   char_arr = list(s)
   char_arr.sort()
        
   return char_arr == list(s)
 
s = "mnnooop"
print(solve(s))

入力

"mnnooop"

出力

True

コードの解説

list(s) によって文字列を1文字ずつ要素に分解したリストを作成し、sort() メソッドで昇順に並べ替えています。その結果を元の文字リストと比較することで、元の文字列がすでにアルファベット順に整列しているかどうかを簡単に判定できます。このアプローチの計算量は O(n log n) です。


  1. 指定された文字列が母音回文であるかどうかを確認するPythonプログラム

    はじめに この記事では、「与えられた文字列から子音をすべて取り除いたとき、残った母音だけの文字列が回文になっているかどうかを判定する」という問題を、Pythonプログラムで解く方法を解説します。 問題の概要 問題文:母音と子音の両方を含む文字列が与えられます。まず文字列からすべての子音を取り除き、その結果得られた文字列が回文(前から読んでも後ろから読んでも同じ並びになる文字列)であるかどうかを確認してください。 解決のアプローチ この問題は、以下の手順で解くことができます。 元の文字列を先頭から順に走査し、母音(a・e・i・o・u)だけを取り出して新しい文字列を作成します。 母音が1つも

  2. Pythonで文字列がパングラムかどうかを判定するプログラムの作成方法

    本記事では、与えられた文字列がパングラムであるかどうかを判定するPythonプログラムの解法とアプローチについて詳しく解説します。 問題の概要 文字列入力が与えられたとき、その文字列がパングラムであるかどうかを判定するPythonプログラムを作成します。 パングラムとは? パングラムとは、英語のアルファベット26文字すべてを少なくとも1回ずつ含む文章や一連の単語のことです。有名な例として「The quick brown fox jumps over the lazy dog」があります。 解法のアプローチ この問題は、以下の手順で解くことができます。 アルファベット全体を表す基準となる文字列