: , 直接给大家贴代码了 : :
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 (سلسلة سلسلة) {super () ؛ this.text = text ؛} boolean public 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 ؛} الخريطة العامة <الحرف ، integer> countstring () {map <الحرف ، integer> map = new hashmap <> () ؛ عدد int = 0 ؛ سلسلة temp = new String () ؛ لـ (int i = 0 ؛ i <text.length () ؛ i ++) {if (temp.indexof (text.charat (i) ، 0) <0) {temp+= text.charat (i) ؛ }} map.clear () ؛ لـ (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) ؛ العد = 0 ؛ }} // 循环打印 لـ (الإدخال <الحرف ، integer> العنصر: map.entryset ()) {system.out.println ("字符:" + item.getKey () + "值:" + item.getValue ()) ؛ } خريطة الإرجاع ؛ } السلسلة العامة تحويل () {int checksum = 0 ؛ int itemCount = 0 ؛ الخريطة <الحرف ، integer> map = countstring () ؛ لـ (الإدخال <الحرف ، integer> العنصر: map.entryset ()) {checksum+= item.getValue () ؛ if (item.getValue () ٪ 2! = 0) itemCount ++ ؛ } if (itemCount> 1) {system.out.println ("该字符串不能转换为回文字") ؛ العودة لاغية. } stringBuffer temp = new StringBuffer (text) ؛ // 线程安全 // stringBuilder temp = new StringBuilder () ؛ // 线程非安全 int begidx = 0 ؛ int endidx = checksum-1 ؛ مفتاح الحرف = فارغ ؛ العلم المنطقي = خطأ ؛ لـ (إدخال <الحرف ، integer> العنصر: map.entryset ()) {if (checksum ٪ 2 == 0) {for (int i = 0 ؛ i <item.getValue ()/2 ؛ i ++) {temp.setcharat (begidx ++ ، item.getKey ()) ؛ temp.setcharat (endidx-- ، item.getKey ()) ؛ }} آخر {if (item.getValue () ٪ 2 == 0) {for (int i = 0 ؛ i <item.getValue ()/2 ؛ i ++) {temp.setcharat (begidx ++ ، item.getKey ()) ؛ temp.setcharat (endidx-- ، item.getKey ()) ؛ }} آخر {key = item.getKey () ؛ العلم = صحيح ؛ يكمل؛ }}} if (flag) {for (int i = 0 ؛ i <map.get (key) ؛ i ++) {temp.setcharat (begidx ++ ، key) ؛ }} إرجاع temp.toString () ؛} الفراغ الثابت العام (سلسلة [] args) {backtext bt = new backtext ("11223445556778990") ؛ 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 版本) , 希望对大家有所帮助 , 如果大家有任何疑问欢迎给我留言 , 小编会及时回复大家的!