算法笔记_084:蓝桥杯练习 11-1落实strcmp函数(Java)

目录

1 style=”font-family: 甲骨文;”>问题讲述

2 style=”font-family: 行草;”>解决方案

 


1 问题讲述

题目讲述

  自己实现一个比字符串大小的函数,也即便落实strcmp函数。函数:int
myStrcmp(char *s1,char *s2)
依照ASCII顺序相比较字符串s1以及s2。若s1以及s2相等重回0,s1>s2重临1,s1<s2再次回到-1。具体来说,六个字符串自左望左侧依次个字符相相比较(按ASCII值大小相比较),直到出现不同之字符或遇’\0’为止(注意’\0’值为0,小于任意ASCII字符)。如:
  ”A”<“B”
  ”a”>”A”
  ”computer”>”compare”
  ”hello”<“helloworld”

样例输出

图片 1

多少规模及约定

  字符串长度<100。

 


2 解决方案

 图片 2

 

现实代码如下:

import java.util.Scanner;

public class Main {

    public void printResult(String A, String B) {
        int lenA = A.length();
        int lenB = B.length();
        if(lenA < 1 || lenB < 1)
            return;
        char[] arrayA = A.toCharArray();
        char[] arrayB = B.toCharArray();
        int i = 0, j = 0;
        int judge = 10000;
        while(i < lenA && j < lenB) {
            judge = arrayA[i++] - arrayB[j++];
            if(judge != 0)
                break;
        }
        if(judge > 0 && judge != 10000) {
            System.out.println("1");
        } else if(judge < 0) {
            System.out.println("-1");
        } else {
            int tempi = lenA - i;
            int tempj = lenB - j;
            if(tempi == tempj) {
                System.out.println("0");
            } else if(tempi > tempj) {
                System.out.println("1");
            } else if(tempi < tempj) {
                System.out.println("-1");
            }
        }
        return;
    }

    public static void main(String[] args) {
        Main test = new Main();
        Scanner in = new Scanner(System.in);
        String A = in.nextLine();
        String B = in.nextLine();
        test.printResult(A, B);
    }
}

 

相关文章