Java版本的回文字算法(java版本)

网友投稿 174 2023-07-04


Java版本的回文字算法(java版本)

废话不多说了,直接给大家贴代码了,具体代码如下所述:

package com.gdh.backtext;

import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

public class BackText {

String text;

public BackText() {

  super();

  this.text = null;

}

public BackText(String text) {

  super();

  this.text = text;

}

public boolean isBackText(){

  for(int i=0,j=text.length()-i-1;i<=j;i++,j--){

    if( text.charAt(i) != text.charAt(j) ){

      return false;

    }

  }

  return true;

}

public Map countString(){

  Map map=new HashMap<>();

  int count=0;

  String temp=new String();

  for(int i=0;i< text.length();i++){

    if ( temp.indexOf(text.charAt(i), 0) < 0){

      temp+=text.charAt(i);

    }

  }

  map.clear();

  for(int i=0;i< temp.length();i++){

    if(!map.containsKey(temp.charAt(i))){

      for(int j=0;j< text.length();j++){

        if(text.charAt(j) == temp.charAt(i) ){

          count++;

        }

      }

      map.put(temp.charAt(i), count);

      count=0;

    }

  }

  //循环打印

  for(Entry item:map.entrySet()){

    System.out.println("字符:" + item.getKey() + " 值:" + item.getValue());

  }

  return map;

}

public String convert(){

  int checksum = 0;

  int itemcouwnpbLunt=0;

  Map map=countString();

  for(Entrhttp://y item:map.entrySet()){

  checksum+=item.getValue();

  if( item.getValue() %2 != 0)

    itemcount++;

  }

  if( itemcount > 1 ){

    System.out.println("该字符串不能转换为回文字");

    return null;

  }

  StringBuffer temp=new StringBuffer(text);//线程安全

  //StringBuilder temp=new StringBuilder();//线程非安全

  int begIdx=0;

  int endIdx=checksum-1;

  Character key=null;

  boolean flag=false;

  for(EntrwnpbLuy item:map.entrySet()){

  if( checksum % 2 ==0 ){

  for(int i=0;i

    temp.setCharAt(begIdx++, item.getKey());

    temp.setCharAt(endIdx--, item.getKey());

  }

    }else{

      if(item.getValue()%2==0 ){

        for(int i=0;i

          temp.setCharAt(begIdx++, item.getKey());

          temp.setCharAt(endIdx--, item.getKey());

        }

      }else{

        key=item.getKey();

        flag=true;

        continue;

      }

    }

  }

  if(flag)

  {

    for(int i=0;i

      temp.setCharAt(begIdx++, key);

    }

  }

  return temp.toString();

}

  public static void main(String[] args) {

    BackText bt=new BackText("1122334455667788990");

    if( !bt.isBackText() )

      System.out.println("该字符串不是回文字");

    else

      System.out.println("该字符串是回文字");

    String dest=new String();

    System.out.println("开始转换...");

    dest=bt.convert( ) ;

    System.out.print("转换后的结果为:");

    System.out.println(dest);

  }

}

以上所述是给大家介绍的Java版本的回文字算法(java版本),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!

    temp.setCharAt(begIdx++, item.getKey());

    temp.setCharAt(endIdx--, item.getKey());

  }

    }else{

      if(item.getValue()%2==0 ){

        for(int i=0;i

          temp.setCharAt(begIdx++, item.getKey());

          temp.setCharAt(endIdx--, item.getKey());

        }

      }else{

        key=item.getKey();

        flag=true;

        continue;

      }

    }

  }

  if(flag)

  {

    for(int i=0;i

      temp.setCharAt(begIdx++, key);

    }

  }

  return temp.toString();

}

  public static void main(String[] args) {

    BackText bt=new BackText("1122334455667788990");

    if( !bt.isBackText() )

      System.out.println("该字符串不是回文字");

    else

      System.out.println("该字符串是回文字");

    String dest=new String();

    System.out.println("开始转换...");

    dest=bt.convert( ) ;

    System.out.print("转换后的结果为:");

    System.out.println(dest);

  }

}

以上所述是给大家介绍的Java版本的回文字算法(java版本),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!

          temp.setCharAt(begIdx++, item.getKey());

          temp.setCharAt(endIdx--, item.getKey());

        }

      }else{

        key=item.getKey();

        flag=true;

        continue;

      }

    }

  }

  if(flag)

  {

    for(int i=0;i

      temp.setCharAt(begIdx++, key);

    }

  }

  return temp.toString();

}

  public static void main(String[] args) {

    BackText bt=new BackText("1122334455667788990");

    if( !bt.isBackText() )

      System.out.println("该字符串不是回文字");

    else

      System.out.println("该字符串是回文字");

    String dest=new String();

    System.out.println("开始转换...");

    dest=bt.convert( ) ;

    System.out.print("转换后的结果为:");

    System.out.println(dest);

  }

}

以上所述是给大家介绍的Java版本的回文字算法(java版本),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!

      temp.setCharAt(begIdx++, key);

    }

  }

  return temp.toString();

}

  public static void main(String[] args) {

    BackText bt=new BackText("1122334455667788990");

    if( !bt.isBackText() )

      System.out.println("该字符串不是回文字");

    else

      System.out.println("该字符串是回文字");

    String dest=new String();

    System.out.println("开始转换...");

    dest=bt.convert( ) ;

    System.out.print("转换后的结果为:");

    System.out.println(dest);

  }

}

以上所述是给大家介绍的Java版本的回文字算法(java版本),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringMvc微信支付回调示例代码
下一篇:Java中浮点数精度问题的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~