OJ_单词倒排

题目描述:对字符串中的所有单词进行倒排。

说明:

1、每个单词是以26个大写或小写英文字母构成,可以用一个“-”中连接线连接单词两部分表示一个单词,但是仅限一个“-”,出现两个“--”则为非构成单词的字符;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;

5、输出字符串,否则输出-1。

样例输入:

i*&* am--a good-student

样例输出:

good-student a am i

代码示例:

public class WordReverseOrder {

    public static void main(String[] args) {
        String string = "i*&*am--a good-student";

        String express = "(?!(?<=[a-zA-Z]+)-(?=[a-zA-Z]+))[^a-zA-Z]+";
        String[] strings = string.split(express);

        if (strings.length == 0) {
            System.out.println("-1");
        }else{
            boolean overLength = false;
            StringBuffer stringBuffer = new StringBuffer();
            for (int i = strings.length - 1; i >= 0; i--) {
                if (strings[i].length() > 20) {
                    overLength = true;
                    break;
                }
                if (!"".equals(strings[i].trim())) {
                    stringBuffer.append(strings[i] + " ");
                }
            }
            if (overLength || stringBuffer == null) {
                System.out.println("-1");
            } else {
                System.out.println(stringBuffer.toString().trim());
            }
        }
    }
}
时间: 2024-10-13 18:29:18

OJ_单词倒排的相关文章

28:单词倒排

28:单词倒排 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔. 输入 输入为一个字符串(字符串长度至多为100). 输出 输出为按要求排序后的字符串. 样例输入 I am a student 样例输出 student a am I #include<iostream> #include<cstring> #include<

Openjudge-计算概论(A)-单词倒排

描述: 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔. 输入输入为一个字符串(字符串长度至多为100).输出输出为按要求排续后的字符串. 样例输入 I am a student 样例输出 student a am I思路:首先把字符串先反转,从前往后扫,遇到空格处理一下单词,要特别注意:最后一个单词不同于其他单词,要单独处理!代码如下(本代码来自我的老师:http://www.cnblogs.com/huashanqingzhu

单词倒排

总时间限制:  1000ms 内存限制:  65536kB 描述 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔. 输入 输入为一个字符串(字符串长度至多为100). 输出 输出为按要求排序后的字符串. 样例输入 I am a student 样例输出 student a am I 代碼實現: 1 #include<iostream> 2 using namespace std; 3 int n; 4 char word[100

35:字符串单词倒排 ReverseWords

题目描述:对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非构成单词的字符均视为单词间隔符: 3.要求倒排后的单词间隔符以一个空格表示:如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符: 4.每个单词最长20个字母: 输入描述:输入一行以空格来分隔的句子 输出描述:输出句子的逆序 输入例子:I am a student 输出例子:student a am I 注意: 非构成单词的字符均视为单词间隔符-->split("

华为OJ——单词倒排

题目描述 对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非构成单词的字符均视为单词间隔符: 3.要求倒排后的单词间隔符以一个空格表示:如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符: 4.每个单词最长20个字母: 输入描述: 输入一行以空格来分隔的句子 输出描述: 输出句子的逆序 输入例子: I am a student 输出例子: student a am I 方法一: import java.util.*; publ

Python 单词字母顺序不变且全部倒排

翻出google测试工程师的一道题目: 设计一个函数,任何语言都可以,实现以下功能: 一个句子,将句子中的单词全部倒排过来,但单词的字母顺序不变.eg.  this is a real world输出结果为:world real a is this 笔者用Python实现如下: #! /usr/bin/env python # -* -coding:utf-8-*- def str_reverse(str): str_dst =str.split()[A1] str_dst.reverse()[

倒排文档

第一行输出该词所在的行数序号(多个的话,按照从小到大排序输出,中间空格隔开,序号从一开始记),如果没有出现,输出 -1 第二行输出频次排名R的单词出现的次数. 测试数据中的词频的分布如下,可见,排名第3的词,出现的次数为2 I,4 Beijing,2 in,2 love,2 .,1 Bejing,1 a,1 also,1 am,1 and,1 beautiful,1 is,1 life,1 live,1 student,1 there,1 travelling,1 这题很简单,参考答案是这样的:

信息检索导论学习笔记 -- 第二章:词项词典及倒排记录表

2.1.1 文档分析及编码转换:      文档处理第一步,是将文件或web服务器上的一系列二进制字节序列转换为字符序列.      在实际中,首先要判断出文档的编码方式(机器学习分类.启发式等方法),确定文档的类型(word?zip?)然后将字节序列转换成字符序列. 2.1.2 文档单位(document unit)的选择:      常见的,将某个目录下的每个文件都看成一个文档.      但有些情况并非如此,比如我们可能希望将邮件.附件(附件中的文件)分开.      对于一个长文档而言,

关于信息检索-倒排文件系统架构解析

信息检索 信息检索我们常见的模型包括: bool model static langulage model vector space model 这里面主要涉及到的问题就是:query expresion,term correlation analysis,similarity computing,feature selection.那么对于similarity computing 阶段,主要的制约条件是内存限制,所以我们要改进term在document中的搜索时间,从而减少similarity