特别爱笑50 2022-05-28 11:48 采纳率: 100%
浏览 52
已结题

神奇的数字 偶数翻转 在eclipse运行不了,如何解决?(语言-java)

  1. 神奇的数字 将字符串数字中为偶数位的数字进行翻转,将翻转后的结果进行输出。 输入:"1234" 输出:"1432"
    public class Solution{
    public String change (String number) {
    if(number.equals("")) {
    return number;
    
    }//如果是空字符串原样返回
    char[] cs = number.toCharArray();
    int first=0;
    //定义头指针
    int last=cs.length-1;
    //定义尾指针
    while(first<last) {
    //循环执行条件,即头指针的位置在尾指针前面,如果在后面说明已经交换完毕
    if((cs[first]%2==0) && (cs[last]%2==0)) {
    //如果两数都是偶数执行交换操作(Ascll码编号与对应数字的奇偶一致)
    char temp = cs[first];
    cs[first]=cs[last];
    cs[last]=temp;
    first++;
    //头指针后移
    last--;
    //尾指针前移
    }else if((cs[first]%2==0) && (cs[last]%2!=0)) {
    //头指针所在为偶数
    last--;
    //头指针等待,尾指针前移
    }else if((cs[first]%2!=0) && (cs[last]%2==0)) {
    //尾指针所在为偶数
    first++;
    //尾指针等待,头指针后移
    }else {
    //头尾指针都不是偶数
    last--;
    //尾指针前移
    first++;
    //头指针后移
    }
    
    }
    String str = new String(cs);
    return str;
    }
    }
  • 写回答

2条回答 默认 最新

  • 太空眼睛 Java领域新星创作者 2022-05-28 12:25
    关注

    直接可运行的代码如下

    public class Solution {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String number = scanner.next();
            Solution solution = new Solution();
            System.out.println(solution.change(number));
        }
    
        public String change(String number) {
            // write code here
            char[] a = number.toCharArray();
            Stack<Character> b = new Stack<>();
            int left = 0;
            int right = a.length - 1;
            while (right >= left)//遍历字符串
            {
                if (a[left] % 2 == 0) {
                    b.push(a[left]);//把偶数字符入栈
                }
                left++;
            }
            left = 0;
            while (right >= left) {
                if (a[left] % 2 == 0) {
                    a[left] = b.peek();//替换偶数字符
                    b.pop();
                }
                left++;
            }
            return new String(a);
        }
    }
    

    运行结果如下:

    1234
    1432
    

    img

    123456
    163452
    

    img

    如有帮助,请采纳,十分感谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月29日
  • 已采纳回答 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 多尺度特征图提取和融合
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?
  • ¥20 小规模孤立词识别系统设计
  • ¥15 关于Java对接海康威视车牌识别一体机SDK是否需要固定外网的IP?
  • ¥15 Linux扩容时,格式化卡住了:vgdispaly查看卷组信息,没有输出
  • ¥18 关于#ubuntu#的问题:使用背景-工作职责内有七八台ubuntu系统的电脑,平时需要互相调取资料,想实现把这几台电脑用交换机组成一个局域网,来实现指定文件夹的互相调取和写入
  • ¥20 求一个简易射频信号综测仪
  • ¥15 esp8266 tally灯 接收端改为发射端
  • ¥30 Labview代码调用access 数据库,相同代码其中一个调用不出来是为什么