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

Posted 舞动的心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法笔记_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)的主要内容,如果未能解决你的问题,请参考以下文章

算法笔记_080:蓝桥杯练习 队列操作(Java)

算法笔记_093:蓝桥杯练习 Problem S4: Interesting Numbers 加强版(Java)

算法笔记_077:蓝桥杯练习 K好数(Java)

算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)

算法笔记_076:蓝桥杯练习 结点选择(Java)

算法笔记_062:蓝桥杯练习 最小乘积(基本型)(Java)