2012-04-11 14 views
-2

Pythonを使用して文字列内の区切り文字を検出したいと思います。ビットを検索した後、私はCSVモジュールをインポート/使用する必要があることを知っていますが、コンマで区切られたファイルや単語で動作します。どのようにカスタムデリミタを検出するためにそれを変更するのですか?いくつかの助けが必要です。私は以下の質問を付けました。平衡デリミタの言語をチェックする方法

宿題についての質問は次のとおりです。

は、テキストが区切り文字をバランスしているかどうかを判断する機能を記述します。有効な区切り文字のペアは、()、[]、{}、および<>です。彼らは入れ子にされるかもしれません。 。また、区切り文字 'とは、「適切にマッチングされ、そのテキストを決定

+2

事実上何でも使用することができますので、あなたが任意の区切り文字を検出することはできませんが... – yurib

+6

'リーダー= csv.reader( csvfile、delimiter = '|')#pipe delimited' –

+3

「デリミタを検出する」とはどういう意味ですか?どんな文字がデリミタとして使用されているのでしょうか?区切り文字が与えられたら、文字列にそれが含まれているかどうかを確認します。区切り文字に文字列を分割しますか? – agf

答えて

1

csvはこのためにお手伝いをするつもりはない

この質問はバランスの取れた区切り文字を検出することができます関数を作成するためにあなたを求めている - 。すなわち

これは古典的な質問です。文脈自由文法で指定することができます。これは、次の入力にエッジが対応するステートマシーンに相当します。ノードは、次のように指定します。スタック上の操作。

listおよびdequeクラスは優れたスタックを作成します。

あなたのコードは次のようになります。あなたが可能区切り文字に関するいくつかの手掛かりを持ってお奨め

def balancedq(input): 
    stack = [] 

    for char in input: 
     #implement your logic here. 
     if sometest: 
      stack.append(char) #push 
     elif someothertest: 
      val = stack.pop() 
      #maybe some test here? 
関連する問題