質問の意味:交換プログラムがある場合には、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 ; }