トピック:
「1~10」「A~Z」の文字列を「,」で区切って、連続する最大の部分文字列を求めます。(10の後の文字はAです)
例 1:
入力:
1、2、3、4、5、7、8出力:
1 2 3 4 5
この質問はインターネット上にオリジナルの質問はなく、面接官が画面を共有して直接出題するもので、面接生は自分のIDEAにコードを書いて自己テストを受けていただきます。一見すると、これは Huawei OD Trusted Exam の主題 2 の問題であり、アルゴリズムのアイデアは比較的単純ですが、比較的珍しいシーンの背景を与えています。
実際、これは、配列内で最大の連続部分文字列を見つける問題です。最大値、連続値、長さこの単語が出てきたら、多くの問題を解いている学生なら「スライディングウィンドウ」を思い浮かべるでしょう。思いつかなくても大丈夫です。今から覚えておいてください。。。。
この質問に対する特別な解決策はありません, 左と右のポインタを使用して, ウィンドウ内のすべての文字が [連続] 要件を満たしているかどうかを判断するだけです. 唯一の困難は文字の処理です. ここではすべてを変換する必要はありません判断できる限り、文字を数字に変換します。さらにいくつかの条件を追加します。
import java.util.Scanner;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static