首页 > 其他分享 >字符串反转、句子逆序 题目

字符串反转、句子逆序 题目

时间:2024-07-16 09:26:58浏览次数:12  
标签:String System public str Scanner 字符串 new 句子 逆序

题目

HJ12 字符串反转

描述

接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

输入描述:

输入一行,为一个只包含小写字母的字符串。

输出描述:

输出该字符串反转后的字符串。

示例:

输入:abcd
输出:dcba

 

分析:

​ 1.使用StringBuilder类的reverse方法进行逆序。

​ 2.使用for循环。

 

代码:

方法一:使用StringBuilder类的reverse方法进行逆序。

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str=sc.next();
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i)<97||str.charAt(i)>122||str.length()>1000){
                System.out.println("输入非法!");
                return;
            }
        }

        StringBuilder sb=new StringBuilder(str);
        sb=sb.reverse();
        str=sb.toString();
        System.out.println(str);

    }
}

 
 

方法二:使用for循环。

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str=sc.next();
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i)<97||str.charAt(i)>122||str.length()>1000){
                System.out.println("输入非法!");
                return;
            }
        }

        for (int i = str.length()-1; i >=0; i--) {
            System.out.print(str.charAt(i));

        }

    }
}

 
 

大佬代码:

使用栈的先进后出特性。

import java.util.Scanner;
import java.util.Stack;
 
/**
 * @author lxg
 * @description 字符串反转方式二
 * @date 2021/9/27
 */
public class Main{
    public static void main(String[] args) {
        Stack stack = new Stack();
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        for (int i = 0; i <s.trim().length() ; i++) {
            stack.push(s.charAt(i));
        }
        while(!stack.empty()){
            System.out.print(stack.pop());
        }
    }
}

 
 
 

使用原理来编写。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String a=in.next();
        System.out.println(getString(a));
    }
    public static  String getString(String a){
        char[] chararr = a.toCharArray();
        for(int i=0;i<chararr.length/2;i++){
            char tmp=chararr[i];
            chararr[i]=chararr[chararr.length-1-i];
            chararr[chararr.length-1-i]=tmp;
        }
        return new String(chararr);
    }
}

 
 
 

HJ13 句子逆序

描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

数据范围:输入的字符串长度满足 1≤

标签:String,System,public,str,Scanner,字符串,new,句子,逆序
From: https://blog.csdn.net/m0_57463864/article/details/140456694

相关文章

  • 算法思想总结:字符串
    一、最长公共前缀.-力扣(LeetCode)思路1:两两比较 时间复杂度mn 实现findcomon返回两两比较后的公共前缀classSolution{public:stringlongestCommonPrefix(vector<string>&strs){//两两比较stringret=strs[0];size_tn=strs......
  • 力扣第八题——字符串转换整数
    题目介绍请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数。函数 myAtoi(strings) 的算法如下:空格:读入字符串并丢弃无用的前导空格("")符号:检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。转换:......
  • 第六章字符串及正则表达式
    字符串的常用操作点击查看代码示例6-1字符串的相关操作1#大小写转换s1='HELLOWORLD'new_s2=s1.lower()print(s1,new_s2)new_s3=s1.upper()print(new_s3)#字符串的分隔e_mail='[email protected]'lst=e_mail.split('@')print('邮箱名:',lst[0],'邮箱服务器:',......
  • 字符串专题
    哈希好用的哈希模数:unsignedlonglong/longlong自然溢出\(2654435769\)(存疑)\(1610612741\)(极力推荐)\(998244353\),\(10^9+7\)(经典,貌似容易被×)提供一种\(N\)模数哈希的写法:LuoguP3546#include<bits/stdc++.h>#defineintlonglong#definelllonglong#define......
  • 【力扣 709】转换成小写字母 C++题解(字符串)
    给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。示例1:输入:s=“Hello”输出:“hello”示例2:输入:s=“here”输出:“here”示例3:输入:s=“LOVELY”输出:“lovely”提示:1<=s.length<=100s由ASCII字符集中的可打印字符组......
  • 【力扣 58】最后一个单词的长度 C++题解(字符串)
    给你一个字符串s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例1:输入:s=“HelloWorld”输出:5解释:最后一个单词是“World”,长度为5。示例2:输入:s="flymetot......
  • C++字符串String和字符串字面量String Literals
    在C++中,字符串(String)是一种用于表示和处理文本数据的基本类型。C++提供了两种主要的字符串类型:C风格字符串(C-StyleString):使用字符数组表示。标准库字符串(std::string):使用标准库中的std::string类表示。1.C风格字符串C风格字符串是一个以空字符(\0)结尾的字符数组。以下是......
  • 代码随想录算法训练营第10天|232. 用栈实现队列,225. 用队列实现栈,20. 有效的括号,1047.
    学习任务:Leetcode232.用栈实现队列Leetcode225.用队列实现栈Leetcode20.有效的括号Leetcode1047.删除字符串中的所有相邻重复项Leetcode232.用栈实现队列难度:简单|相关标签:栈、设计、队列题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支......
  • 判断字符串相等
    “==”操作符用于比较两个对象的地址是否相等。.equals()方法用于比较两个对象的内容是否相等。Strings1=newString("hh");Strings2=newString("hh");//trueSystem.out.println(s1.equals(s2));//falseSystem.out.println(s1==s2);Object类的equals()/......
  • 字符串拼接
    StringBuilder的append()Strings1="ha";Strings2="xi";//编译的时候被替换成newStringBuilder(s1).append(s2).toString();System.out.println(s1+s2);Strings1="ha";//+号也被编译成了append()Strings2=s1+"";System.ou......