ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

字符串练习题

2021-06-14 10:57:54  阅读:183  来源: 互联网

标签:练习题 ch else last1 append last2 字符串 进位


有效的括号

import org.junit.Test;
import java.util.Stack;

/**
 * 有效的括号
 * https://leetcode-cn.com/problems/valid-parentheses/
 */
public class IsValid {


    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        char ch;
        char peek;

        for (int i = 0; i < s.length(); i++) {
            ch = s.charAt(i);

            if (ch == '(' || ch == '[' || ch == '{') {
                stack.push(ch);
            } else if (ch == ')' || ch == ']' || ch == '}') {
                if (stack.empty()){
                    return false;
                }
                peek = stack.peek();
                if ( peek == '(' && ch == ')'
                        || peek == '[' && ch == ']' || peek == '{' && ch == '}') {
                    stack.pop();
                }else{
                    return false;
                }
            }
        }
        return stack.empty();
    }

    @Test
    public void test(){
        System.out.println(isValid("]"));
    }
}

二进制求和

public class AddBinary {
    public String addBinary(String a, String b) {
        if (a == null || b == null){
            return "0";
        }
        if ("".equals(a)|| a.charAt(0) == '0'){
            return b;
        }
        if ("".equals(b) ||b.charAt(0) == '0'){
            return a;
        }

        StringBuilder r = new StringBuilder();
        int last1 = a.length() - 1;
        int last2 = b.length() - 1;
        int i = 0;
        int j = 0;
        int c = 0;
        while (last1 >= 0 && last2 >=0) {
            i = a.charAt(last1)-'0';
            j = b.charAt(last2)-'0';
            if (i+j+c==1){
                r.append("1");
                // 没有进位
                c = 0;
            }else if (i+j+c==0){
                r.append("0");
                // 没有进位
                c = 0;
            }else if (i+j+c==2){
                r.append("0");
                // 进位
                c = 1;
                }else if (i+j+c==3){
                    r.append("1");
                    // 进位
                    c = 1;
                }
            last1--;
            last2--;
        }

        while (last1>=0){
            i = a.charAt(last1)-'0';
            if (c==0){
                r.append(i);
            }else {
                if (i+c==1){
                    r.append("1");
                    // 没有进位
                    c = 0;
                }else if (i+c==0){
                    r.append("0");
                    // 没有进位
                    c = 0;
                }else if (i+c==2){
                    r.append("0");
                    // 进位
                    c = 1;
                }
            }
            last1--;
        }
        while (last2>=0){
            j = b.charAt(last2)-'0';
            if (c==0){
                r.append(j);
            }else {
                if (j+c==1){
                    r.append("1");
                    // 没有进位
                    c = 0;
                }else if (j+c==0){
                    r.append("0");
                    // 没有进位
                    c = 0;
                }else if (j+c==2){
                    r.append("0");
                    // 进位
                    c = 1;
                }
            }
            last2--;
        }
        if (c==1){
            r.append("1");
        }
        return r.reverse().toString();
    }

    @Test
    public void test() {
        System.out.println(addBinary("1111", "1111"));
    }
}

标签:练习题,ch,else,last1,append,last2,字符串,进位
来源: https://blog.csdn.net/qq_44581597/article/details/117898833

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有