✨ ベストアンサー ✨
以下の様になってます
i:Bun(="かいかんじん")の左からi文字目の位置(比較開始(先頭)位置)
j:tango(="かんじ")の左からj文字目の位置
k:tangoの文字(1~t)とBunの文字(i~i+t-1)を比較して不一致となった文字数
ーーーーー
処理概要(説明)
i:Bunの文字の比較開始文字位置として、1からb-t+1まで処理する
b-t+2以上から比較開始すると、Bunの残りの比較文字がt-1以下で、tangoの文字数tより少なくなるため比較処理できなくなるため(Bunの比較する残りの文字が足りない)、b-t+1までとする
j:tangoの文字(数)すべてを処理(t以下の間は処理を行う)
不一致処理数をカウントするため、不一致が途中で判明してもtangoの最後まで繰り返す
i+j-1:Bunのi文字目とtangoの1文字目から比較を開始して、Bunのj回目比較(i+j-1文字目)を意味
k=0の場合、bunの比較先頭位置iを印刷する
ーーーーー
実行概要(分かりやすいように編集部分あり)
b=6:Bun="かいかんじん"
t=3:tango="かんじ"
i=1:j=1:k=0
j=1:tango(j:1)="か"、Bun(i+j-1:1)="か”
j=2:tango(j:2)="ん"、Bun(i+j-1:2)="い”:k←k+1=1
j=3:tango(j:3)="じ"、Bun(i+j-1:3)="か”:k←k+1=2
i=2:j=1:k=0
j=1:tango(j:1)="か"、Bun(i+j-1:2)="い”:k←k+1=1
j=2:tango(j:2)="ん"、Bun(i+j-1:3)="か”:k←k+1=2
j=3:tango(j:3)="じ"、Bun(i+j-1:4)="ん”:k←k+1=3
i=3:j=1:k=0
j=1:tango(j:1)="か"、Bun(i+j-1:3)="か”:
j=2:tango(j:2)="ん"、Bun(i+j-1:4)="ん”:
j=3:tango(j:3)="じ"、Bun(i+j-1:5)="じ”:
i=4:j=1:k=0
j=1:tango(j:1)="か"、Bun(i+j-1:4)="ん”:k←k+1=1
j=2:tango(j:2)="ん"、Bun(i+j-1:5)="じ”:k←k+1=2
j=3:tango(j:3)="じ"、Bun(i+j-1:6)="ん”:k←k+1=3
i=4(b-t+1=6+3-1)までなので、終了
文字比較は12回実行された
1行忘れてました🙇♂️
下記の「k=0なので、先頭位置は3(i=3)を印刷する」
・・
i=3:j=1:k=0
j=1:tango(j:1)="か"、Bun(i+j-1:3)="か”:
j=2:tango(j:2)="ん"、Bun(i+j-1:4)="ん”:
j=3:tango(j:3)="じ"、Bun(i+j-1:5)="じ”:
k=0なので、先頭位置は3(i=3)を印刷する
i=4:j=1:k=0
・・・
ありがとうございます🙇🏻♀️