Blue Bridge Cup-Passwordドロップ(Java)

パスワードが外れる
Planet Xの考古学者は、古代から残された一連のコードを発見しました。これらのコードは、4つの植物A、B、C、およびDの種子のシーケンスです。綿密な分析の結果、これらのパスワード文字列は最初は対称的である必要があることがわかりました(つまり、私たちが言ったミラー文字列)。年齢の関係で、種子の多くが脱落しており、鏡像の特性を失う可能性があります。
あなたの仕事は:あなたが今見るパスワード文字列を与えられ、それが現在の状態になる前に元の状態から脱落しなければならない種子の数を計算します。
現在表示されているパスワード文字列(長さが1000以下)を出力するには正の整数が必要であることを示す行を入力し、少なくともドロップされるシードの数を示します。
たとえば、入力:ABCBA
、プログラムは出力:0です
。たとえば、入力:ABDCDCBABC
、プログラムは出力:3
リソースの規則:ピークメモリ消費<256MCPU消費<1000ms

ダブルポインターを
使用してユースケースの検証の問題を解決します。問題が発生した場合は修正してください

import java.util.Scanner;
public class Mimatl {
//回文数密码脱落问题 
    static int check(String a)
    {
     char []b=a.toCharArray();//转为字符串
     int start=0;
     int end=b.length-1;
     int count=0;
     while(start<=end)
     {
      if(b[start]!=b[end])//若不相等
      {
       count++;//计数加一
       boolean s=true;//设定的一个标志位;巧用标志位判断该段程序是否执行
          for(int i=end-1;i>(end-start)>>1;i--)//循环确定是start++还是end--;
          {
           if(b[i]==b[start])
           {
            end--;
            s=false;
            break;
            }             
          }
         if(s==true)
          start++;
      }
      else
      {
         start++;
         end--;
      }
     }
     return count;
    }
    public static void main(String[] args) {
  // TODO Auto-generated method stub
 Scanner a=new Scanner(System.in);
 String b=a.nextLine();
 int c=check(b);
 System.out.println(c);
 }
 }
 





公開された14元の記事 ウォンの賞賛0 ビュー245

おすすめ

転載: blog.csdn.net/lianggege88/article/details/105079927