算法笔记_084:蓝桥杯练习 11-1实现strcmp函数(Java)
Posted 舞动的心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法笔记_084:蓝桥杯练习 11-1实现strcmp函数(Java)相关的知识,希望对你有一定的参考价值。
目录
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"
"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)的主要内容,如果未能解决你的问题,请参考以下文章
算法笔记_093:蓝桥杯练习 Problem S4: Interesting Numbers 加强版(Java)