[CF1243B1]文字スワップ(簡単バージョン)[思考]

質問の意味:交換プログラムがある場合には、2つの文字列、2つの文字列が同じになるように、交換プログラムは一度だけしか交換である尋ねるS1とS2の文字の

解決策:最初と同じ場合は、交換プログラムがあります

異なるまたは2つ以上の開始位置は、その後、何のプログラムが存在しない場合

異なる開始位置2の場合、aiを== AJまたは双方向== BJ、前記限りのプログラムがあるとして、またはプログラムが存在してはいませんを参照してください

書式#include <iostreamの> 
の#include <cstdioを> 
する#include <cstdlib> 
書式#include <CStringの> 
の#include < 文字列 >
 使用して 名前空間はstdを、
INT T、L、CNT。
char型 [ 10001 ]、B [ 10001 ]。
int型の DIF [ 10001 ];
INT メイン()
{ 
    scanf関数(" %のD "、&T)。
    一方、(T-- 
    { 
      scanf関数(" %D%S%S "、&​​L、a、b)は、CNT = 0 INTは iが= 0を I ++; I <L)であれば(![I] = B [i])とDIF [++ CNT] = I。
      もし(CNT> 2 || CNT == 1){のprintf(" いいえ\ n "); 引き続き;}
       もし(CNT == 0){のprintf(" はい\ n "); 引き続き;}
       もし([DIF [ 1 ]] == A [DIF [ 2 ] && B [DIF [ 1 ]] == B [DIF [ 2 ])のprintf(" はい\ n " );
      のprintf("いいえ\ n " ); 
    } 
    戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/worcher/p/11901181.html