精华内容
下载资源
问答
  • 反转字符串描述编写一个函数,其作用是将输入字符串反转过来。输入字符串以字符数组 char[] 的形式出。不要另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以...

    b9b2f86b214d30f92cc3bb2b051399dd.png

    # 题目

    344. 反转字符串

    描述

    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

    不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

    你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

    示例 1:

    输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"]

    示例 2:

    输入:["H","a","n","n","a","h"] 输出:["h","a","n","n","a","H"]

    解题思路

    1. 若数组长度为偶数,则遍历数组长度的一半;若数组长度为奇数,则遍历数组长度的一半向下取整;
    2. 然后定义一个临时变量,用临时变量将字符数组前后元素交换位置;

    实现

     package string;
     
     import java.util.Arrays;
     
     /**
      * Created with IntelliJ IDEA.
      * Version : 1.0
      * Author  : cunyu
      * Email   : cunyu1024@foxmail.com
      * Website : https://cunyu1943.github.io
      * Date    : 2020/3/19 22:35
      * Project : LeetCode
      * Package : string
      * Class   : ThreeHundredFortyFour
      * Desc    : 344.反转字符串
      */
     public class ThreeHundredFortyFour {
         public static void main(String[] args) {
             ThreeHundredFortyFour threeHundredFortyFour = new ThreeHundredFortyFour();
             char[] s = {'1', '3', '9', '7'};
             threeHundredFortyFour.reverseString(s);
             System.out.println(Arrays.toString(s));
         }
     
         /**
          * 反转字符串
          * @param s
          */
         public void reverseString(char[] s) {
             for (int i = 0; i < (int) (s.length / 2); i++) {
                 char tmp = s[i];
                 s[i] = s[s.length - 1 - i];
                 s[s.length - 1 - i] = tmp;
             }
         }
     }
    展开全文
  • 的时候遇到了一个问题,即怎么知道该allocate多大的内存来存放输入字符串,网上找了半天,要么是说保存在标准库的string里,然后根据string的大小来allocate(这样我还自己编写String干嘛……);要么是和vector似...

    今天在给自己的String编写重载输入运算符>>的时候遇到了一个问题,即怎么知道该allocate多大的内存来存放输入的字符串,网上找了半天,要么是说保存在标准库的string里,然后根据string的大小来allocate(这样我还自己编写String干嘛……);要么是和vector似的先allocate一段内存,不够了就reallocate然后挪过去,感觉既麻烦又效率低。

    联想到之前学的流迭代器,用下面的代码很简单的就实现了功能:

    #include<iostream>
    #include<memory>
    #include<iterator>
    using namespace std;
    int main()
    {
     istream_iterator<char[]> is(cin);
     allocator<char> alloc;
     auto sz = strlen(*is);//获得流中字符串的长度
     auto b = alloc.allocate(sz);
     auto e = uninitialized_copy(*is, *is + sz, b);//从流中拷贝元素
     for (auto i = b; i != e; ++i)//打印并销毁元素
     {
      cout << *i;
      alloc.destroy(i);
     }
     alloc.deallocate(b, sz);//释放内存
     return 0;
    }
    
     

    如果有什么错误,或者你有别的方法,还望不吝赐教_(:з」∠)_

    展开全文
  • 题目一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换...

    题目

    给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,

    其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。

    你可以 任意多次交换 在 pairs 中任意一对索引处的字符。

    返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。

    示例 1:输入:s = "dcab", pairs = [[0,3],[1,2]] 输出:"bacd"

    解释: 交换 s[0] 和 s[3], s = "bcad"

    交换 s[1] 和 s[2], s = "bacd"

    示例 2:输入:s = "dcab", pairs = [[0,3],[1,2],[0,2]] 输出:"abcd"

    解释:交换 s[0] 和 s[3], s = "bcad"

    交换 s[0] 和 s[2], s = "acbd"

    交换 s[1] 和 s[2], s = "abcd"

    示例 3:输入:s = "cba", pairs = [[0,1],[1,2]] 输出:"abc"

    解释:交换 s[0] 和 s[1], s = "bca"

    交换 s[1] 和 s[2], s = "bac"

    交换 s[0] 和 s[1], s = "abc"

    提示:1 <= s.length <= 10^5

    0 <= pairs.length <= 10^5

    0 <= pairs[i][0], pairs[i][1] < s.length

    s 中只含有小写英文字母

    解题思路分析

    1、并查集+排序;时间复杂度O(nlog(n)),空间复杂度O(n)

    ae444348288189a32d02aa0998e0f837.png
    func smallestStringWithSwaps(s string, pairs [][]int) string {n := len(s)fa := make([]int, n)for i := 0; i < n; i++ {fa[i] = i}for i := 0; i < len(pairs); i++ {a, b := pairs[i][0], pairs[i][1]union(fa, a, b)}m := make(map[int][]int)for i := 0; i < len(s); i++ {target := find(fa, i)m[target] = append(m[target], i)}res := []byte(s)for _, v := range m {arr := make([]int, 0)for i := 0; i < len(v); i++ {arr = append(arr, int(s[v[i]]))}sort.Ints(arr)for i := 0; i < len(v); i++ {res[v[i]] = byte(arr[i])}}return string(res)}func union(fa []int, a, b int) {fa[find(fa, a)] = find(fa, b)}func find(fa []int, a int) int {for fa[a] != a {fa[a] = fa[fa[a]]a = fa[a]}return a}

    总结

    Medium题目,使用并查集分组,然后分组排序即可

    展开全文
  • 1 我想让用户输入一组字符串,然后将这个字符串的每一个给一个char.即,abcde 2 char ch[]=new char[5]; 3 ch[0]=a;ch[1]=b;..... 1 解决方案如下图所示: 2 String str="abcde"; 3 char[] c=new char...
    1 我想让用户输入一组字符串,然后将这个字符串的每一个赋给一个char.即,abcde
    2 char ch[]=new char[5];
    3 ch[0]=a;ch[1]=b;.....
    1 解决方案如下图所示:
    2 String str="abcde";
    3 char[] c=new char[str.length()];
    4 c=str.toCharArray();

    华为的一道机试代码题目如下所示。

     1 //输入字符串长度len1,字符串S1,字符串len2,s2,从后往前比较,以最短字符串为标准,输出不同元素的个数。
     2 public class SWTest {
     3     public static void main(String[] args){
     4         String s1="1,2,3,4,5";
     5         String s2="1,3,5";
     6         int len1=s1.length();
     7         int len2=s2.length();
     8         SWTest test=new SWTest();
     9         System.out.println(test.getDiffNum(len1,s1,len2,s2));
    10     }
    11     public int getDiffNum(int len1,String s1,int len2,String s2){
    12         int count=0;
    13         int len=0;
    14         
    15         //String[] arr1=s1.split(",");//将String字符串转化成String字符数组。
    16         //String[] arr2=s2.split(",");
    17         
    18         char arr1[]=new char[len1];//将String字符串转化成字符数组。注:默认为char类型的。
    19         arr1=s1.toCharArray();
    20 
    21         char arr2[]=new char[len2];
    22         arr2=s2.toCharArray();
    23         
    24         if(len1>len2)
    25             len=len2;
    26         else 
    27             len=len1;
    28         
    29         for(int i=0;i<len;i++){
    30             if(!(arr1[len1-1-i]==arr2[len2-1-i])){
    31                 count++;}
    32         }
    33         return count;
    34     }
    35 
    36 }

     

    转载于:https://www.cnblogs.com/meihao1989/p/3284976.html

    展开全文
  • 定义一个字符数组char s[80],从键盘上输入一个字符串(不超过40个字符),用gets()函数存入到s中,然后统计并输出其中的大写字母、小写字母、数字字符及其他字符的个数。 如输入 ATTENTION! My E-mail address ...
  • ❝遇到对字符串或者数组做填充或删除的操作时,都要想想从后向前操作怎么样。❞题目:剑指Offer 05.替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20...
  • 由于字符串是一系列单个字符的组合,所以它用char 类型的数组来表示字符串,在数组中,一个数组元素存放一个char类型字符。 char name[40];  name 变量就可以存放字符串了,并且最多只能存储40个字符。那...
  • 一个输出函数cin作用只是把从键盘输入了第一个x变量,然后x赋值amin和amax。2.这时根据while条件进入循环内,因为x,max,amin三个变量数值相同。if里的条件不满足就会运行到第二个Cin函数。Cin会把你输入的第...
  • ❝遇到对字符串或者数组做填充或删除的操作时,都要想想从后向前操作怎么样。❞题目:剑指Offer 05.替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20...
  • c语言的字符串库函数,在string.h头文件中 ...如果用strcpy这个拷贝函数,就要小心自己的输入参数是不是一个字符串,如果是字符数组,一定不要忘记结尾处赋值\0,不然的话就会溢出了,可以手动试...
  • 输入一个字符串和一个非负整数N,要求将字符串循环左移N次。 输入格式: 输入在第1行中出一个不超过100个字符长度的、以回车结束的非空字符串;第2行出非负整数N。 输出格式: 在一行中输出循环左移N次后的字符...
  • 题意:一个密钥字符串,假设其长度为k,然后再一个明文字符串,以k为段长不断截出来,构成一个矩阵,最后一行剩余的空位随便怎么补齐,这样横着放好之后,再竖着一列一列输出,但是不是简单地从左到右,而是...
  • 出N长的字符串S1,M长的字符串S2,求出s2在s1中所有出现的位置。用KMP做,先输入次S2出现的位置,然后输出S2的前缀数组next。题解: KMP: next[i]表示需要匹配的字串的最长公共前后缀的长度。 怎么求next[i]...
  • 接下来为m行数据,每行包括三项信息,分别表示一个学生的考号(字符串)、总成绩(整数)和英语单科成绩(整数),这三项之间用空格分隔。 输出说明 按排名从高到低的顺序输出进入复试的这n名学生的信息。 输入...
  • 编写主函数,在主函数中定义字符数组s[80],从键盘输入一字符串给s,通过调用函数del,将字符数组s中的中部的*删除,并输出删除后的字符串, 并输出结果到屏幕上和文件bca5_4.out中。将源程序命名为bca5_4.c。 测试...
  • 题目大意:你在输入文章的时候,键盘上的Home...分析:用next[k]来表示k的下一个字符的序号,cur表示当前字符序号,last表示最后一个字符序号。下面一步步来讲解怎么做 首先,为了方便起见,输入字符串从s+1开始,即s
  • 我后面想建立一个修改或者增加删除无向网中结点的函数,应该怎么做 <p>struct EdgeNode //定义边表结点 {<!-- -->  int adjvex; //邻接点域  EdgeNode *next; }; <p>struct ...
  • 输入输出问题汇总

    2019-08-20 21:49:37
    输入一字符串(中间可能存在空格),怎么把它保存到一个string中。 string line; getlin(cin,line); 输入未知数目的数字,怎么给存入数组中? 123,23,123,169,123,... 首先要用字符串getline来存储,把一行...
  • //将用户输入的字符串以逗号(,)作为分隔符,分隔成2个字符串 String[] posStrArr = inputStr.split(","); //将2个字符串转换成用户下棋的座标 int xPos = Integer.parseInt(posStrArr[0]); int...
  • 第八章

    2021-01-13 23:28:03
    再设计一个函数完成n个字符串排序(在排序的过程中,要求只交换指向字符串的指针值,不交换字符串)。在主函数中完成将排序后的字符串输出。 输入格式: 在第一行中出N(1 <= N <= 20),此后N行,每行包含...
  • bugku-逆向-7、love

    千次阅读 2020-09-26 16:15:26
    我们发现代码的主要逻辑就是输入一串flag字符串Str,Str经过sub_4110BE函数,返回v1一个字符串,v1再复制Dest字符数组,Dest数组经过一个for循环的逐个加运算,最后将得到的Dest字符数组和Str2字符串’e3nifIH9b...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 9.2.3 判断两个字符串是否相等 223 9.2.4 判断字符串的开头和结尾 225 9.2.5 分割字符串 225 9.2.6 在字符串中查找子字符串或字符 226 9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 ...
  • 2.建立max-min+1个数组字符串,将第i元素a[i]放到第a[i]-min个数组字符串中, 3.输出建立的max-min+1中每个数组中包含的元素的下角标; 例如:a={0,1,2,0,1,1,2,3,1,0} 输出结果为: {0,9} {1,4,5,8} {2,6...
  • 我的面试总结

    2013-07-21 18:34:50
    3,你一百万的字符串,然后输入一个字符串,让你查找此字符串的出现次数,查找次数很多 4,手写双向链表?(舆情早报网笔试题) 5,手写哈希表插入算法?(舆情早报网笔试题) 6 ,描述并手写堆排序?(搜狗面
  • 一个有100万个用空格分隔开的随机数,随机数用空格隔开了,找出其中的最大值和最小值。 如下图: 数字的有正有负,而且足够长(长到想用字符串的长短来比较大小) 但还是最直接的想法,读取里面的每个数存放的...
  • 例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我...

空空如也

空空如也

1 2 3 4 5
收藏数 100
精华内容 40
关键字:

怎么输入一个字符串给数组