首页 > 代码库 > 算法笔记_084:蓝桥杯练习 11-1实现strcmp函数(Java)

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

目录

1 问题描述

2 解决方案

 


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"
样例输出
技术分享
数据规模和约定
  字符串长度<100。

 


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);
    }
}

 

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