赛码---约德尔测试(Java)
来源:互联网 发布:国研网数据子库 编辑:程序博客网 时间:2024/05/01 10:01
题目描述
兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。
说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。
请问:相似率为多少?
输入
每组输入数据为两行,第一行为有关约德尔人历史的字符串,第二行是黑默丁格观测星空得到的字符串。
(两个字符串的长度相等,字符串长度不小于1且不超过1000。)
样例输入
@!%12dgsa
010111100
输出
输出一行,在这一行输出相似率。用百分数表示。(相似率为相同字符的个数/总个数,精确到百分号小数点后两位。printf(“%%”);输出一个%。)
样例输出
66.67%
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str1 = scanner.nextLine(); String str2 = scanner.nextLine(); String result = judge(str1); int count = compare(str2, result); float out = (float)count*100/str1.length(); System.out.printf("%.2f%%", out); } public static int compare(String str1, String result) { int len = str1.length(); int count = 0; for(int i = 0; i < len; i++){ if(str1.charAt(i) == result.charAt(i)){ count++; } } return count; } public static String judge(String str1) { int len = str1.length(); StringBuffer sBuffer = new StringBuffer(); char c; for(int i = 0; i < len; i++){ c = str1.charAt(i); if(c >= 'a' && c <= 'z' || c>= 'A' && c <= 'Z' || c >= '0' && c <= '9'){ sBuffer.append("1"); }else{ sBuffer.append("0"); } } return sBuffer.toString(); }}
0 0
- 赛码---约德尔测试(Java)
- java测试
- java测试
- java 测试
- JAVA测试
- java测试
- java 测试
- java测试
- Java测试
- java测试
- java 测试
- java测试
- 测试java
- 【赛码】约德尔测试
- 赛码-约德尔测试
- Java测试--安全测试#归档测试
- java 异常效率测试测试
- Java测试--安全测试#目录
- JavaScript中的数据类型
- Linux系统下安装matlab2016b
- 浅谈限幅电路
- 数据链路层协议窗口的计算问题
- HTML+CSS基础 table标签cellspacing属性设置单元格与单元格、边框之间的距离
- 赛码---约德尔测试(Java)
- swift3新路程(16)nil、optional values和强拆包(!)
- 空对象模式
- ionic 下拉刷新
- 多线程经典笔试面试题
- Gym 100543A Parades
- https://github.com/getlantern/lantern/
- myeclipse 开发web项目发布到Tomcat下root目录
- 简单命令