接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
#include<stdio.h> #include<string.h> #define N 1000 void daozhi(char *str) { char *p = str+strlen(str)-1; char tmp; while(str<p) { tmp=*p; *p--=*str; *str++=tmp; } } int main() { char str[N]={0}; gets(str); daozhi(str); puts(str); return 0; }指针分别指向头尾,然后进行交换,当头==尾的时候结束。
//一个用递归实现的Java解法 //二分翻转 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String s = sc.nextLine(); System.out.println(Main.reverse(s)); } } public static String reverse(String s){ int len = s.length(); if(len<=1){ return s; } String left = s.substring(0,len/2); String right = s.substring(len/2,len); return reverse(right)+reverse(left);//右边加左边,实现递归翻转 } }
public class Main{ public static void main(String []args) throws IOException{ Scanner sc = new Scanner(System.in); while(sc.hasNext()) { String str = sc.next(); for(int i = str.length() - 1; i >= 0; i--) { char c = str.charAt(i); System.out.print(c); } } } }
#include <bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; string ans; reverse(s.begin(), s.end()); ans = s; cout << ans; return 0; }
#include <bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; int left = 0, right = s.size() - 1; while(left < right){ swap(s[left], s[right]); left++; right--; } cout << s; return 0; }
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); StringBuffer str=new StringBuffer(sc.nextLine()); System.out.print(str.reverse()); } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner input = new Scanner(System.in); String s = input.nextLine(); StringBuilder sb = new StringBuilder(); for(int i=s.length()-1; i>=0; i--){ sb.append(s.charAt(i)); } System.out.print(sb); } }法二:
import java.util.*; public class Main{ public static void main(String[] args){ Scanner input = new Scanner(System.in); StringBuilder sb = new StringBuilder(); while(input.hasNext()){ sb.append(input.next()); } System.out.print(sb.reverse()); } }
#include<stdio.h> #include<string.h> int main() { char a[1000] = {0}; while (gets(a)) { char buf[1000] = {0}; unsigned long len = strlen(a); for (long i = 0; i < len; i++) { buf[len - i - 1] = a[i]; } printf("%s", buf); } return 0; }
import java.util.Scanner; public class Main{ public static void main(String[] args){ String str = new Scanner(System.in).next(); StringBuffer strR = new StringBuffer(str).reverse(); System.out.println(strR); } }
#include <stdio.h> (737)#include <string.h> #include <stdlib.h> (794)#include <math.h> int strlen_count(char* str); // 计算字符串的长度,包括‘\0’ // 但不包括‘\n’换行符 int main(void) { char str[1000] = { 0 }; int str_len = 0; fgets(str, 1000, stdin); str_len = strlen_count(str); for (int i = str_len; i > 0; i--) { printf("%c", str[i - 1]); } printf("\r\n"); system("pause"); return 0; } int strlen_count(char* str) { int count = 0; while (*(str) != '\n') { str++; // 指向下一个字符 count++; } return count; }
while(True): # 方法1:转换为list进行操作 try: s = input() s = list(reversed(list(s))) # reversed返回的是迭代器,所以要加list() print(''.join(s)) except: break ''' while(True): # 方法2:直接对字符串s进行reversed 操作 try: s = input() print(''.join(reversed(s))) except: break ''' while(True): # 采用字符串切片的方式 try: s = input() print(s[::-1]) except: break